Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

刚刚过,给后来的朋友说说我犯的毛病!

Posted by xcl119xcl at 2007-07-31 23:01:38 on Problem 1002
其实也是看别人的贴总结出来的
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator