| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:1171:为什用网络上的IOI 95 上的数据来测试都过了,在这里却wa了?错在哪里呢?In Reply To:1171:为什用网络上的IOI 95 上的数据来测试都过了,在这里却wa了?错在哪里呢? Posted by:2004huangyimin at 2008-08-05 17:08:16 > #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <vector>
> #include <string>
> using namespace std;
> int keyboard[30];
> int main()
> {
> keyboard[0] = 2;
> keyboard[1] = 5;
> keyboard[2] = 4;
> keyboard[3] = 4;
> keyboard[4] = 1;
> keyboard[5] = 6;
> keyboard[6] = 5;
> keyboard[7] = 5;
> keyboard[8] = 1;
> keyboard[9] = 7;
> keyboard[10] = 6;
> keyboard[11] = 3;
> keyboard[12] = 5;
> keyboard[13] = 2;
> keyboard[14] = 3;
> keyboard[15] = 5;
> keyboard[16] = 7;
> keyboard[17] = 2;
> keyboard[18] = 1;
> keyboard[19] = 2;
> keyboard[20] = 4;
> keyboard[21] = 6;
> keyboard[22] = 6;
> keyboard[23] = 7;
> keyboard[24] = 5;
> keyboard[25] = 7;
>
> char collected[9];
> int num[30];
> int copy[30];
> vector<string> vecTmp;
> int i;
> for(i = 0;i < 30;i++)
> {
> num[i] = 0;
> }
> scanf("%s",collected);
> int slen = strlen(collected);
> for(i = 0;i < slen;i++)
> {
> num[collected[i] - 'a'] += 1;
> copy[collected[i] - 'a'] = num[collected[i] - 'a'];
> }
>
> int max(0);
> char str[10];
>
> // char result[10];
> // char rsl[10];
> int tmp[30];
> while(scanf("%s",str))
> {
> int bIsChs = false;
> int sum(0);
> if(strcmp(str,".") == 0){break;}
> int len = strlen(str);
> for(i = 0;i < len;i++)
> {
> if(copy[str[i] - 'a']-- > 0){sum += keyboard[str[i]-'a'];}
> else{sum = 0;break;}
> }
> if(i >= len){bIsChs = true;}
> ///////////////////////////////////////////////////////////////////////////////////////
> vector<string>::iterator iter;
> int t_s = 0;
> int m = 0;
> string t_str;
> for(iter = vecTmp.begin();iter != vecTmp.end();iter++)
> {
> t_s = 0;
> for(i = 0;i < 30;i++)
> {
> tmp[i] = copy[i];
> }
> string t = (*iter);
> len = t.length();
> for(i = 0;i < len;i++)
> {
> if(tmp[t[i] - 'a']-- > 0){t_s += keyboard[t[i] - 'a'];}
> else{t_s = 0;break;}
> }
> if(t_s > m){m = t_s;t_str = t;}
> }
> sum += m;
> //////////////////////////////////////////////////////////////////////////////////////
> if(bIsChs){vecTmp.push_back(str);}
> if(sum > max){max = sum;/*strcpy(result,str);strcpy(rsl,t_str.c_str());*/}
> for(i = 0;i < slen;i++)
> {
> copy[collected[i] - 'a'] = num[collected[i] - 'a'];
> }
> }
> printf("%d\n",max);
> // printf("%s\n",result);
> // printf("%s\n",rsl);
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator