ZCMU—1403

原创 2017年01月02日 22:49:18

1403: Arne Saknussemm

Time Limit: 1 Sec  Memory Limit: 128 MB
[Submit][Status][Web Board]

Description

Following the account of Jules Verne, a scrambled message written by the middle age alchemist Arne Saknussemm, and deciphered by professor Lidenbrock, started the incredible travel to the center of the Earth. The scrambling procedure used by Arne is alike the procedure given below.

1. Take a non empty message M that contains letters from the English alphabet, digits, commas, dots, quotes (i.e. '), spaces and line breaks, and whose last character is different than space. For example, consider the following message whose translation reads "In Sneffels's crater descend brave traveler, and touch the center of the Earth".

In Sneffels craterem descende audas
viator, et terrestre centrum attinges.

2. Choose an integral number 0<K≤length(M) and add trailing spaces to M such that the length of the resulting message, say M', is the least multiple of K. For K=19 and the message above, where length(M)=74 (including the 8 spaces and the line break that M contains), two trailing spaces are added yielding the message M' with length(M')=76.

3. Replace all the spaces from M' by the character _ (underscore) ; replace all the line breaks from M' by \ (backslash), and then reverse the message. In our case:

__.segnitta_murtnec_ertserret_te_,rotaiv\sadua_ednecsed_meretarc_sleffenS_nI

4. Write the message that results from step 3 in a table with length(M')/K rows and K columns. The writing is column wise. For the given example, the message is written in a table with 76/19=4 rows and 19 columns as follows:

_

e

t

m

n

e

e

t

_

t

\

u

d

s

m

t

_

f

S

_

g

t

u

e

r

r

_

,

a

s

a

n

e

e

a

s

f

_

.

n

a

r

c

t

r

t

r

i

a

_

e

d

r

r

l

e

n

s

i

_

t

_

s

e

e

o

v

d

e

c

_

e

c

e

n

I

5. The strings of characters that correspond to the rows of the table are the fragments of the scrambled message. The 4 fragments of Arne's message given in step 1 are:

_etmneet_t\udsmt_fS
.narctrtria_edrrlen

_gtuerr_,asaneeasf_
si_t_seeovdec_ecenI

Write a program that deciphers non empty messages scrambled as described. The length of a message, before scrambling, is at most 1000 characters, including spaces and line breaks.

The program input is from a text file where each data set corresponds to a scrambled message. A data set starts with an integer n, that shows the number of fragments of the scrambled message, and continues with n strings of characters that designate the fragments, in the order they appear in the table from step 4 of the scrambling procedure. Input data are separated by white-spaces and terminate with an end of file.

Output

The deciphered message must be printed on the standard output, from the beginning of a line and must be followed by an empty line as shown in the input/output sample below.

Sample Input

4 _etmneet_t\udsmt_fS 
   _gtuerr_,asaneeasf_
   .narctrtria_edrrlen 
   si_t_seeovdec_ecenI
11 e n r e V _ s e l u J

Sample Output

In Sneffels craterem descende audas
viator, et terrestre centrum attinges.

Jules Verne

【分析】

字符串处理,解密...倒过来就变成一个文章,然后'_'表示空格  '\'表示换行,代码中需要'\\',然后处理的时候去掉末尾的空格,头上的空格不需要去掉...嗯大概我英语太差了...一开始错在这个上...
【代码】
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
char a[1050][1050];
char s[2000000];
int main()
{
	int n;
	while (~scanf("%d",&n))
	{
		for (int i=0;i<n;i++) cin>>a[i];
		int len=0;
		int t=1;
		for (int j=strlen(a[0])-1;j>=0;j--)
			for (int i=n-1;i>=0;i--)
			{
			//	if (a[i][j]!='_') t=1;
				if (t) s[len++]=a[i][j];
			}
		t=0;
		for (int j=0;j<strlen(a[0]);j++)
			for (int i=0;i<n;i++)
				if (a[i][j]=='_') t++;
				else goto out;
		out:;
		for (int i=0;i<len-t;i++)
			if (s[i]=='_') printf(" ");
			else
			if (s[i]=='\\') printf("\n");
			else
				printf("%c",s[i]);
		printf("\n\n");
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

codevs 1403 新三国争霸

题目描述 Description PP 特别喜欢玩即时战略类游戏,但他觉得那些游戏都有美中不足的地方。灾害总不降临道路,而只降临城市,而且道路不能被占领,没有保护粮草的真实性。于是他就研发了《新...
  • u013810072
  • u013810072
  • 2015年02月15日 11:57
  • 1442

Halcon例程学习:adaption_ocv.hev(光学字符检测)

****************************************************************************************************...
  • liubing8609
  • liubing8609
  • 2014年11月26日 13:49
  • 2154

天勤OJ 题目1403: 数列

题目描述 编写一个求菲波那奇数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。   输入 输入第一行为样例数m,接下...
  • SJF0115
  • SJF0115
  • 2013年02月15日 19:39
  • 1165

毕向东1403

  • 2016年05月09日 05:27
  • 44.8MB
  • 下载

爱卡发卡平台ACCESS虚拟主机版v1403-2

  • 2015年01月07日 19:53
  • 10.48MB
  • 下载

约数研究-洛谷 1403

题目描述科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samue...
  • chenhongyi6
  • chenhongyi6
  • 2017年01月15日 11:53
  • 140

zoj 1403 简单枚举

题意简述:密码序列是由一系列大写字母组成,在解密序列不唯一的情况下,按字典序输出最后 一个。其中,target是数字,v,w,x,y,z属于同一个集合且各不相同,该集合由题目给出,由26个大写字母中的...
  • saltedFishGong
  • saltedFishGong
  • 2017年12月21日 21:48
  • 23

hdu1403 求最长公共前缀 后缀数组

#include #include #include #include #include #include #include #include #include using namespace std...
  • zjck1995
  • zjck1995
  • 2015年09月01日 16:26
  • 456

hdu_1403_SAM_求最小公共前缀

题目: click here 就是求最小公共前缀 #include #include #include #include using namespace std; con...
  • ipqhjjybj
  • ipqhjjybj
  • 2014年06月22日 15:15
  • 764

CODE[VS] 1403 新三国争霸

DP+最小生成树
  • SenyeLicone
  • SenyeLicone
  • 2016年10月31日 23:55
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ZCMU—1403
举报原因:
原因补充:

(最多只允许输入30个字)