Отримання знань

дистанційна підтримка освіти школярів


P,MTHBGWB
http://acm.pku.edu.cn/JudgeOnline/problem?id=1051

   Входные данные

   Выходные данные

   Пример входных данных

   Пример выходных данных

   Анализ условия и обсуждение идеи решения

   Пример решения на C++:

#include "iostream" 
#include "string"

using namespace std;

int main()
{
int N;
int i,j,k,l,Tlen=0,thiscode;
int Tcode[5000];
int RTcode[5000];
int len[1000]={0};
int code[100]={0};
int decode[10000];
char msg[1000];
code[65]=12;
code[66]=2111;
code[67]=2121;
code[68]=211;
code[69]=1;
code[70]=1121;
code[71]=221;
code[72]=1111;
code[73]=11;
code[74]=1222;
code[75]=212;
code[76]=1211;
code[77]=22;
code[78]=21;
code[79]=222;
code[80]=1221;
code[81]=2212;
code[82]=121;
code[83]=111;
code[84]=2;
code[85]=112;
code[86]=1112;
code[87]=122;
code[88]=2112;
code[89]=2122;
code[90]=2211;
code[95]=1122;
code[44]=1212;
code[46]=2221;
code[63]=2222;
for(i=0; i < 100; i++)
decode[code[i]]=i;
cin >> N;
for(i=0; i < N; i++){
cin >> msg;
cout << i+1 << ": ";
l=strlen(msg);
Tlen=0;
for(j=0; j < 1000; j++)
len[j]=0;
for(j=l-1; j > -1; j--){
thiscode=code[(int)msg[j]];
while(thiscode!=0){
Tcode[Tlen]=thiscode%10;
Tlen++;
len[j]++;
thiscode/=10;
}
}
for(j=0; j < Tlen; j++)
RTcode[j]=Tcode[Tlen-j-1];
Tlen=0;
for(j=0; j < l; j++){
thiscode=0;
for(k=0; k< len[l-j-1]; k++){
thiscode+=RTcode[Tlen];
thiscode*=10;
Tlen++;
}
thiscode/=10;
cout << (char)decode[thiscode];
}
cout << endl;
}
}

 

Попередня Зміст Наступна
В системі: гості - (); користувачі - (0)