資源描述:
《1346 潛伏者 1350 鋪地毯》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、潛伏者【NOIP2009提高組】TimeLimit:10000MS?MemoryLimit:65536KTotalSubmit:14Accepted:7Description R國和S國正陷入戰(zhàn)火之中,雙方都互派間諜,潛入對方內(nèi)部,伺機(jī)行動。歷盡艱險后,潛伏于S國的R國間諜小C終于摸清了S國軍用密碼的編碼規(guī)則: 1、S國軍方內(nèi)部欲發(fā)送的原信息經(jīng)過加密后在網(wǎng)絡(luò)上發(fā)送,原信息的內(nèi)容與加密后所得的內(nèi)容均由大寫字母‘A’-‘Z’構(gòu)成(無空格等其他字符)。 2、S國對于每個字母規(guī)定了對應(yīng)的“密字”
2、。加密的過程就是將原信息中的所有字母替換為其對應(yīng)的“密字”?! ?、每個字母只對應(yīng)一個唯一的“密字”,不同的字母對應(yīng)不同的“密字”?!懊茏帧笨梢院驮帜赶嗤?。例如,若規(guī)定‘A’的密字為‘A’,‘B’的密字為‘C’(其他字母及密字略),則原信息“ABA”被加密為“ACA”。現(xiàn)在,小C通過內(nèi)線掌握了S國網(wǎng)絡(luò)上發(fā)送的一條加密信息及其對應(yīng)的原信息。小C希望能通過這條信息,破譯S國的軍用密碼。小C的破譯過程是這樣的:掃描原信息,對于原信息中的字母x(代表任一大寫字母),找到其在加密信息中的對應(yīng)大寫字母y,并
3、認(rèn)為在密碼里y是x的密字。如此進(jìn)行下去直到停止于如下的某個狀態(tài): 1、所有信息掃描完畢,‘A’-‘Z’所有26個字母在原信息中均出現(xiàn)過并獲得了相應(yīng)的“密字”?! ?、所有信息掃描完畢,但發(fā)現(xiàn)存在某個(或某些)字母在原信息中沒有出現(xiàn)。 3、掃描中發(fā)現(xiàn)掌握的信息里有明顯的自相矛盾或錯誤(違反S國密碼的編碼規(guī)則)。例如某條信息“XYZ”被翻譯為“ABA”就違反了“不同字母對應(yīng)不同密字”的規(guī)則。在小C忙得頭昏腦漲之際,R國司令部又發(fā)來電報,要求他翻譯另外一條從S國剛剛截取到的加密信息?,F(xiàn)在請你幫助小C:通
4、過內(nèi)線掌握的信息,嘗試破譯密碼。然后利用破譯的密碼,翻譯電報中的加密信息。Input 輸入文件名為spy.in,共3行,每行為一個長度在1到100之間的字符串。第1行為小C掌握的一條加密信息。第2行為第1行的加密信息所對應(yīng)的原信息。第3行為R國司令部要求小C翻譯的加密信息。輸入數(shù)據(jù)保證所有字符串僅由大寫字母‘A’-‘Z’構(gòu)成,且第1行長度與第2行相等。Output 輸出文件spy.out共1行。若破譯密碼停止時出現(xiàn)2,3兩種情況,請你輸出“Failed”(不含引號,注意首字母大寫,其它小寫)。否則
5、請輸出利用密碼翻譯電報中加密信息后得到的原信息。SampleInputAAABEOWIESampleOutputFailed【輸入輸出樣例1說明】 原信息中的字母‘A’和‘B’對應(yīng)相同的密字,輸出“Failed”。Hint【輸入輸出樣例2】spy.inQWERTYUIOPLKJHGFDSAZXCVBNABCDEFGHIJKLMNOPQRSTUVWXYDSLIEWOspy.outFailed【輸入輸出樣例2說明】 字母‘Z’在原信息中沒有出現(xiàn),輸出“Failed”?!据斎胼敵鰳永?】spy.inMS
6、RTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPPYIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLLFLSOspy.outNOIPSource水題vari,j,n:longint;c:char;s,s1,s2:string;p:boolean;a,b:array['A'..'Z']ofchar;beginreadln(s1);readln(s2);forc:='A'to'Z'doa[c]:='';forc:
7、='A'to'Z'dob[c]:='';p:=true;fori:=1tolength(s1)dobeginif(a[s1[i]]='')and(b[s2[i]]='')thenbegina[s1[i]]:=s2[i];b[s2[i]]:=s1[i];endelseif(a[s1[i]]<>s2[i])or(b[s2[i]]<>s1[i])thenbeginp:=false;break;end;end;ifpthenforc:='A'to'Z'doifa[c]=''thenbeginp:=false;
8、break;end;ifnotpthenwriteln('Failed')elsebeginreadln(s);fori:=1tolength(s)dowrite(a[s[i]]);writeln;end;end.鋪地毯【NOIP2011提高組Day1】TimeLimit:10000MS?MemoryLimit:128000KTotalSubmit:1Accepted:1Description鋪地毯(carpet.cpp/c/pas)【問題描述】 為了