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 |
服了它了,测试数据是什么啊?凡是能想到的数据都能过,老是wrong answer!!!贴出代码给大伙看看#include<iostream> #include <string.h> using namespace std; char mymap['Z'-'0']; int mynumber[100000]; int mycount[100000]; int nlenth=-1; int myfind(int x) { if (nlenth<0)//列表为空时返回-1 return -1; int l=0,r=nlenth; int p; p=(l+r)/2; while(l<=r) { if (x==mynumber[p]) break; if(x<mynumber[p]) r=p-1; if(x>mynumber[p]) l=p+1; p=(l+r)/2; } if(l<=r) return p; else return -1; } void myinsert(int x) { int p=nlenth; while(x<mynumber[p]) { mynumber[p+1]=mynumber[p]; mycount[p+1]=mycount[p]; p--; } mynumber[p+1]=x; mycount[p+1]=1; nlenth++; } int main() { for(char i='0';i<='9';i++) mymap[i-'0']=i-'0'; for(char i='A';i<'Z';i++) { if(i<'Q') mymap[i-'0']=(i-'A')/3+2; if(i>'Q') mymap[i-'0']=(i-'Q')/3+7; } int n; cin>>n; char c[50],*p; int t,nx; for(int i=0;i<n;i++) { cin>>c; p=c; nx=0; while(*p)//鍙栧嚭鐢佃瘽鍙风爜骞跺皢瀹冭浆鎹负涓€涓暣鏁?鍙嶈浆瀛樻斁) { if(*p!='-') { t=mymap[*p-'0']; nx=nx*10+t; } p++; } t=myfind(nx);//鍘绘暟缁勯噷闈㈡煡鎵緉x if(t==-1)//鏈壘鍒板垯鎻掑叆鍒版暟缁勯噷锛屽苟璁剧疆瀹冪殑涓暟涓? { myinsert(nx); } else { mycount[t]++;//鎵惧埌鏃跺彧瑕佸皢瀹冪殑涓暟鍔? } } n=0; bool haveduplicates=false; while(mycount[n]) { if (mycount[n]>1) { int tt=mynumber[n]; haveduplicates=true; int power=1000000; for(int j=0;j<3;j++) { t=tt/power; cout<<t; tt-=t*power; power/=10; } cout<<"-"; for(int j=0;j<4;j++) { t=tt/power; cout<<t; tt-=t*power; power/=10; } cout<<" "<<mycount[n]<<endl; } n++; } if (!haveduplicates) { cout<<"No duplicates."<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator