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

Re:TLE 求告知哪个部分超时

Posted by a6265789111 at 2012-07-22 10:04:56 on Problem 1002
In Reply To:TLE 求告知哪个部分超时 Posted by:osfpu at 2012-03-02 11:04:06
> #include <iostream>
> #include <string>
> #include <vector>
> #include <cctype>
> #include <algorithm>
> using namespace std;
> bool cmp(string a,string b)
> {
> 	if(a < b)
> 	{
> 		return true;
> 	}
> 	else
> 	{
> 		return false;
> 	}
> }
> 
> int main()
> {
> 	int number;	
> 	cin>>number;						// the number of telephone numbers( number <= 100000 )
> 	vector<string> tel;					//store the processing telephone numbers
> 	int i;
> 	for(i = 0; i < number; i++)		//processing the telephone numbers
> 	{
> 		string strtemp1,strtemp2(7,' ');
> 		cin>>strtemp1;
> 		for(string::size_type j = 0, k = 0; j < strtemp1.size(); ++j)
> 		{
> 			if(strtemp1[j] != '-')
> 			{
> 				if(isalpha(strtemp1[j]))
> 				{
> 					if(strtemp1[j] < 'Q')
> 					{
> 						strtemp1[j] = (strtemp1[j] - 65) / 3 + 50;
> 					}
> 					else
> 					{
> 						strtemp1[j] = (strtemp1[j] - 66) / 3 + 50;
> 					}
> 				}
> 				strtemp2[k++] = strtemp1[j];
> 			}
> 		}
> 		tel.push_back(strtemp2);
> 	}
> 	sort(tel.begin(),tel.end(),cmp);
> 	bool flag = false;				//judgment the exist of same numbers
> 	for(int j = 0, k = 1; j < tel.size() - 1; )
> 	{
> 		if(tel[j] != tel[j+1])
> 		{
> 			tel.erase(tel.begin() + j);
> 		}
> 		else
> 		{
> 			if(!flag)
> 			{
> 				flag = true;
> 			}
> 			k++;
> 			for(int x = 2; x < tel.size() - j; ++x)
> 			{
> 				if(tel[j] == tel[j+x])
> 				{
> 					k++;
> 				}
> 				else
> 				{
> 					break;
> 				}
> 			}
> 					for(i = 0; i < 3; i++)
> 					{
> 						cout<<tel[j][i];
> 					}
> 					cout<<"-";
> 					for(i = 3; i < 7; i++)
> 					{
> 						cout<<tel[j][i];
> 					}
> 					cout<<" "<<k<<endl;
> 					j = j + k;
> 					k = 1;
> 		}
> 	}
> 	if(!flag)
> 	{
> 		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