POJ百練2975:Caesar

1755 ワード

char *gets( char *
buffer
);
機能:行改行またはEOFが受け入れられるまでstdinストリームから文字列を読み出し、bufferポインタが指す文字配列に読み出しの結果を格納します.改行は読み出し列の内容ではなく、読み出した改行はnull値に変換され、文字列が終了する.
 
時間制限:
1000ms
メモリの制限:
65536kB
説明
Julius Caesarは危険と陰謀に満ちた時代に暮らしていた.生き残るために、彼は初めてパスワードを発明し、軍隊の情報伝達に使った.あなたがCaesar軍団の将校であると仮定すると、Caesarが送ったメッセージを解読し、将軍に提供する必要があります.メッセージ暗号化の方法は、メッセージ原文の各アルファベットを、そのアルファベットの後の5番目のアルファベット(例えば、メッセージ原文の各アルファベットAがそれぞれアルファベットFに置き換えられる)で置き換え、他の文字は変わらず、メッセージ原文のすべてのアルファベットが大文字である.
暗号文字:A B C D E F G H I JKLMNO P Q R S T U V WX Y Z
原文字母:V W X Y Z A B C D E F G H I JKLMNO P QR S T U
入力
最大100個以下のデータセット構成.各データセットは3つのセクションで構成されています.
開始行:START
パスワードメッセージ:Caesarから送信されたメッセージを表す1~200文字の行
終了行:END
最後のデータセットの後、別の行:ENDOFINPUT
しゅつりょく
各データセットは1行に対応し、Caesarの元のメッセージです.
サンプル入力
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT

サンプル出力
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

 
 #include #include char map[]="VWXYZABCDEFGHIJKLMNOPQRSTU"; int main(){  char s[101];  int i,j=10;  while(1){   gets(s);    if(strcmp(s,"ENDOFINPUT")==0)    break;   gets(s);    for(i=0;s[i]!='\0';i++){    if(s[i]>='A'&&s[i]<='Z')     printf("%c",map[s[i]-'A']);    else     printf("%c",s[i]);   }   gets(s);   printf("");  }  return 0; }