| ||||||||||
| 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:刚刚过,给后来的朋友说说我犯的毛病!In Reply To:刚刚过,给后来的朋友说说我犯的毛病! Posted by:xcl119xcl at 2007-07-31 23:01:38 > 其实也是看别人的贴总结出来的
> 2点
> 1:最后如果没有符合条件的要cout<<"No duplicates. "<<endl;
> 2:最后的输出一定要符合条件,我是用的如下格式
> printf("%03d-%04d %d\n", tel[k-1]/10000, tel[k-1]%10000, count);
>
> 另外贴个我的代码,请大家多多指教,如何能减少时间
> #include <iostream>
> #include <string>
> #include <vector>
> #include <algorithm>
> using namespace std;
>
> int main()
> {
> vector<int> tel;
> int line;
> string s;
> int num=0;
> cin>>line;
> int count=1;
> for(int i=0;i<line;i++)
> {
> cin>>s;
> for(int j=0;j<s.length();j++)
> {
> if(s[j]=='-')
> continue;
> num*=10;
> if(s[j]>47&&s[j]<58)
> {
> num+=(s[j]-'0');
> continue;
> }
> if(s[j]>58&&s[j]<81)
> {
> num+=(s[j]-59)/3;
> continue;
> }
> if(s[j]>81)
> num+=(s[j]-60)/3;
> }
> tel.insert(tel.end(),num);
> num=0;
> }
> sort(tel.begin(),tel.end());
> bool have=true;
> int k=0;
> for(k=1;k<line;k++)
> {
> if(tel[k]==tel[k-1])
> count++;
> if(tel[k]!=tel[k-1]&&count>1)
> {
> //cout<<tel[k-1]/10000<<"-"<<tel[k-1]%10000<<" "<<count<<endl;
> printf("%03d-%04d %d\n", tel[k-1]/10000, tel[k-1]%10000, count);
> count=1;
> have=false;
> }
>
> }
> if(tel[k-1]==tel[k-2]&&count>1)
> {
> //cout<<tel[k-1]/10000<<"-"<<tel[k-1]%1000<<" "<<count<<endl;
> printf("%03d-%04d %d\n", tel[k-1]/10000, tel[k-1]%10000, count);
> have=false;
> }
> if(have)
> 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