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