7-6エーススパイ3(15分)
2178 ワード
7-6エーススパイ3(15分)
よく知られている旺仔はアラブ首長国連邦から来た富二代だが、実はこれらはすべて偽物だ.彼の正体は火星情報局のエーススパイで、このすべての起源と極秘の計画は......(ここでは1万字を省略する)ある晩、旺仔特工は火星情報局に10万の急いでいるファイルを送るつもりだったが、ファイルが漏れるのを恐れて、ファイルを暗号化することにした.暗号化のルールは以下の通りだ.
まず、手紙の先頭に「暗号化情報」があり、次に本文(
ただし暗号化された火星文)では、一定のルールで火星文を復号すると、各火星文文字が対応する火星文文字になります.「暗号化情報」が「ACM」である場合、暗号化ルールは以下の通りである.A C M B D E F G H I J K L N O P Q R S T U V W X Y A B C D E F H I J K L M N O P Q R S T U V W X Zは、「暗号化情報」である「ACM」が先頭にあり、26個の火星文文字がそれ以外は順に後ろに並んでいることを発見する可能性がある.すると、各文字は一つ一つ対応する関係になります.以上のように「A」->「A」>「C」->「B」>「M」->「C」>「B」->「D」に対応している.小文字も「a-」>「a,『c->『b』,『m->「c」,『b』->「d」と同じである.
入力形式:
複数組の入力.最初の行には、「暗号化された情報」(すべて大文字の英語文字であり、任意の2文字が「AAB」など)で異なる文字列が入力されます.2行目は、本文の行数を表す整数n(1<=n<=10)を入力します.次にn行、各行に1行の本文(文字列長が200未満)を表す文字列を入力します.
出力フォーマット:
暗号化情報に加えてn行が出力され,各行は復号された本文である.
サンプルを入力:
出力サンプル:
ここでは、対応する出力が与えられます.例:
ACコード
よく知られている旺仔はアラブ首長国連邦から来た富二代だが、実はこれらはすべて偽物だ.彼の正体は火星情報局のエーススパイで、このすべての起源と極秘の計画は......(ここでは1万字を省略する)ある晩、旺仔特工は火星情報局に10万の急いでいるファイルを送るつもりだったが、ファイルが漏れるのを恐れて、ファイルを暗号化することにした.暗号化のルールは以下の通りだ.
まず、手紙の先頭に「暗号化情報」があり、次に本文(
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String S = miwen(sc.nextLine());
String s = S.toLowerCase();
int n = sc.nextInt();
sc.nextLine();
for (int i = 0; i < n; i++) {
String my = sc.nextLine();
for (int j = 0; j < my.length(); j++) {
if(my.charAt(j)>='A'&&my.charAt(j)<='Z') System.out.print((char)(65+S.indexOf(my.charAt(j))));
else if(my.charAt(j)>='a'&&my.charAt(j)<='z') System.out.print((char)(97+s.indexOf(my.charAt(j))));
else System.out.print(my.charAt(j));
}
System.out.println();
}
}
}
public static String miwen(String s) {
char arr[] = new char[26];
for (int i = 65; i <= 90; i++) {
arr[i-65] = (char)i;
}
String ss[] = new String(arr).split("["+s.charAt(0)+s.charAt(1)+s.charAt(2)+"]");
StringBuffer sb = new StringBuffer();
for (String string : ss) {
sb.append(string);
}
return s+sb;
}
}
ただし暗号化された火星文)では、一定のルールで火星文を復号すると、各火星文文字が対応する火星文文字になります.「暗号化情報」が「ACM」である場合、暗号化ルールは以下の通りである.A C M B D E F G H I J K L N O P Q R S T U V W X Y A B C D E F H I J K L M N O P Q R S T U V W X Zは、「暗号化情報」である「ACM」が先頭にあり、26個の火星文文字がそれ以外は順に後ろに並んでいることを発見する可能性がある.すると、各文字は一つ一つ対応する関係になります.以上のように「A」->「A」>「C」->「B」>「M」->「C」>「B」->「D」に対応している.小文字も「a-」>「a,『c->『b』,『m->「c」,『b』->「d」と同じである.
入力形式:
複数組の入力.最初の行には、「暗号化された情報」(すべて大文字の英語文字であり、任意の2文字が「AAB」など)で異なる文字列が入力されます.2行目は、本文の行数を表す整数n(1<=n<=10)を入力します.次にn行、各行に1行の本文(文字列長が200未満)を表す文字列を入力します.
出力フォーマット:
暗号化情報に加えてn行が出力され,各行は復号された本文である.
サンプルを入力:
ACM
2
ee ff gg jj kk aa bb cc mm dd
H al wanf zah
WCM
1
FW Fw
出力サンプル:
ここでは、対応する出力が与えられます.例:
ff gg hh kk ll aa dd bb cc ee
I am wang zai
HA Ha
ACコード