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。使用了一些STL使用了一些STL,少写了一些代码,不知道这样做好不好。 #include<iostream> #include<string> #include<set> #include<iterator> #include<iomanip> using namespace std; int turn[26] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9}; long convert(string &s) //转换成数字 { long total=0; for(int i=0;i<s.length();i++) { if(s[i]>='0'&&s[i]<='9') total=total*10+(s[i]-'0'); else if(isupper(s[i])) total=total*10+turn[s[i]-'A']; } return total; } void output(long num)//将数字按照格式输出 { int up=num/10000; int down=num-up*10000; cout<<setfill('0')<<setw(3)<<up<<"-"<<setfill('0')<<down; } int main() { int times; cin>>times; multiset<long> ml; for(int k=0;k<times;k++) { string s; cin>>s; ml.insert(convert(s)); } bool flag=true; for(multiset<long>::iterator i=ml.begin();i!=ml.end();)//判断重复与否并输出 { int count=ml.count(*i); if(count!=1) { flag=false; output(*i); cout<<" "<<count<<endl; } advance(i,count); } if(flag) { cout<<"No duplicates."<<endl; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator