20 反反覆覆

2021-09-07 09:39:58 字數 1414 閱讀 7483

總時間限制: 

1000ms

記憶體限制: 

65536kb

描述mo和larry發明了一種資訊加密方法。他們首先決定好列數,然後將資訊(只包含字母)從上往下依次填入各列,並在末尾補充一些隨機字母使其成為乙個完整的字母矩陣。例如,若資訊是「there's no place like home on a snowy night」並且有5列,mo會寫成:

t o i o y

h p k n n

e l e a i

r a h s g

e c o n h

s e m o t

n l e w x

注意mo只會填入字母,且全部是小寫形式。在這個例子中,mo用字母「x」填充了資訊使之成為乙個完整的矩陣,當然他使用任何字母都是可以的。

mo根據這個矩陣重寫資訊:首先從左到右寫下第一行,然後從右到左寫下第二行,再從左到右寫下第三行……以此左右交替地從上到下寫下各行字母,形成新的字串。這樣,例子中的資訊就被加密為:toioynnkpheleaigshareconhtomesnlewx。

你的工作是幫助larry從加密後的資訊中還原出原始資訊(包括填充的字母)。

輸入第一行包含乙個整數(範圍2到20),表示使用的列數。

第二行是乙個長度不超過200的字串。

輸出一行,即原始資訊。

樣例輸入

5

toioynnkpheleaigshareconhtomesnlewx

樣例輸出

theresnoplacelikehomeonasnowynightx

**east central north america 2004

1 #include2 #include3 #include4 #include5

using

namespace

std;

6char a[1001];7

int now=0;8

char b[101][101];9

intmain()

26else

if(fx==2

) 27

32if(j==n+1

) 33

38if(j==0&&i!=1)39

444546}

47 b[i][j]=a[now];

48/*

for(int i=1;i<=hang;i++)

4955}*/

56/*

for(int i=1;i<=hang;i++)

57*/

62 i=1,j=1;63

int tot=0;64

while(tot!=hang*n)

6576}77

78return0;

79 }

20 反反覆覆

name 20 反反覆覆 author 巧若拙 description 描述mo和larry發明了一種資訊加密方法。他們首先決定好列數,然後將資訊 只包含字母 從上往下依次填入各列,並在末尾補充一些隨機字母使其成為乙個完整的字母矩陣。例如,若資訊是 there s no place like hom...

OpenJudge 反反覆覆

描述 mo和larry發明了一種資訊加密方法。他們首先決定好列數,然後將資訊 只包含字母 從上往下依次填入各列,並在末尾補充一些隨機字母使其成為乙個完整的字母矩陣。例如,若資訊是 there s no place like home on a snowy night 並且有5列,mo會寫成 t o ...

百練noi 20 反反覆覆

總時間限制 1000ms 記憶體限制 65536kb 描述 mo和larry發明了一種資訊加密方法。他們首先決定好列數,然後將資訊 只包含字母 從上往下依次填入各列,並在末尾補充一些隨機字母使其成為乙個完整的字母矩陣。例如,若資訊是 there s no place like home on a s...