程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 百練 2818 密碼

百練 2818 密碼

編輯:C++入門知識

鏈接地址:http://poj.grids.cn/practice/2818/

題目:

描述
Bob 和 Alice 開始使用一種全新的編碼系統。它是一種基於一組私有鑰匙的。他們選擇了n個不同的數a1 , . . .,an, 它們都大於0小於等於n。 機密過程如下:待加密的信息放置在這組加密鑰匙下,信息中的字符和密鑰中的數字一一對應起來。信息中位於i位置的字母將被寫到加密信息的第ai個位置, ai 是位於i位置的密鑰。加密信息如此反復加密,一共加密 k 次。

信息長度小於等於n。如果信息比 n 短, 後面的位置用空格填補直到信息長度為n。

請你幫助 Alice 和 Bob 寫一個程序,讀入密鑰,然後讀入加密次數 k 和要加密的信息,按加密規則將信息加密。



輸入
輸入包括幾塊。每塊第一行有一個數字n, 0 < n <= 200. 接下來的行包含n個不同的數字。數字都是大於0小於等於n的。下面每行包含一個k和一個信息字符串,它們之間用空格格開。每行以換行符結束,換行符不是要 加密的信息。每個塊的最後一行只有一個0。 最後一個塊後有一行,該行只有一個0。
輸出
輸出有多個塊,每個塊對應一個輸入塊。每個塊包含輸入中的信息經過加密後的字符串,順序與輸入順序相同。所有加密後的字符串的長度都是 n。 每一個塊後有一個空行。
樣例輸入
10
4 5 3 7 2 8 1 6 10 9
1 Hello Bob
1995 CERC
0
0
樣例輸出
BolHeol  b
C RCE

代碼
#include <iostream><cstdlib><cstdio><cstring>
 
    (scanf(,&n),n !=  *nums =  ( i = ; i < n; i++) cin>>
        * circles =  ( i = ; i < n; i++ pos = j = = nums[pos] - ++(pos !==(scanf(,&k),k != * chs =  [n+ ,()*(n+ length ==  = 
            
             *chs3 =  [n+( i = ; i < n; i++ nk = k % pos =( j = ; j < nk; j++= nums[pos] - == <<chs3<<<< 

 

思路:
(1)注意要優化,不然會超時
(2)讀入讀出要注意

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved