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 |
1002:这个程序为什么会超时??#include<iostream> #include<string> using namespace std; struct Ttelnum{ string telnum;//号码 int count;//重复计数 bool isced;//计数和输出标计 }; int testcount; Ttelnum *telnumset; char direct[]={'2','2','2','3','3','3','4','4','4','5','5','5', '6','6','6','7','7','7','8','8','8','9','9','9'}; int main() { cin>>testcount; int numcount=testcount; telnumset=new Ttelnum[testcount]; char ch; while(numcount>0) {//输入循环 int w=testcount-numcount; int bitcount=7; int i=0; while(bitcount>0) { cin>>ch; if(ch=='-')continue; if(ch>='0'&&ch<='9') telnumset[w].telnum+=ch; if(ch>='A'&&ch<'Q') telnumset[w].telnum+=direct[ch-'A']; if(ch>'Q'&&ch<'Z') telnumset[w].telnum+=direct[ch-'A'-1]; bitcount--; } telnumset[w].count=1; telnumset[w].isced=false; numcount--; } numcount=testcount; while(numcount>0) {//统计循环 int q=testcount-numcount; for(int i=q+1;i<testcount;i++) if(!telnumset[i].isced&&telnumset[i].telnum==telnumset[q].telnum) { telnumset[i].isced=true; telnumset[q].count++; } numcount--; } string temp="9999999"; int samecount=0; int y=-1; for(int k=0;k<testcount;k++) {//以下是输出循环 temp="9999999"; y=-1; for(int i=0;i<testcount;i++) if(telnumset[i].isced==false &&telnumset[i].telnum<temp&&telnumset[i].count>1) { y=i; temp=telnumset[i].telnum; } if(y==-1)break; telnumset[y].isced=true; for(int n=0;n<3;n++) { samecount++; cout<<telnumset[y].telnum[n]; } cout<<'-'; for(n=3;n<7;n++) cout<<telnumset[y].telnum[n]; cout<<" "<<telnumset[y].count<<endl; } if(!samecount)cout<<"No duplicates."<<endl; delete[] telnumset; //system("pause"); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator