| ||||||||||
| 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 | |||||||||
太悲剧了……老TLE……#include <iostream>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
char Trans( char c )
{
switch ( c )
{
case 'A':
case 'B':
case 'C':
return '2';
case 'D':
case 'E':
case 'F':
return '3';
case 'G':
case 'H':
case 'I':
return '4';
case 'J':
case 'K':
case 'L':
return '5';
case 'M':
case 'N':
case 'O':
return '6';
case 'P':
case 'R':
case 'S':
return '7';
case 'T':
case 'U':
case 'V':
return '8';
case 'W':
case 'X':
case 'Y':
return '9';
}
return c;
}
void Convert( string &str )
{
static string s;
int i = 0 , j = 0;
s.resize( 7 );
while ( i < 7 )
{
if ( str[j] == '-' )
{
j++;
continue;
}
s[i] = Trans( str[j] );
i++;
j++;
}
s.insert( s.begin() + 3 , '-' );
str = s;
}
bool MyFind( const pair<string , int> &e )
{
return e.second > 1;
}
int main()
{
map<string , int> m;
map<string , int>::iterator iter;
int T;
string str;
cin>>T;
str.reserve( 200 );
while ( T-- > 0 )
{
cin>>str;
Convert( str );
m[str]++;
}
iter = find_if( m.begin() , m.end() , MyFind );
if ( iter == m.end() )
{
cout<<"No duplicates."<<endl;
}
else
{
iter = m.begin();
while ( iter != m.end() )
{
if ( iter->second > 1 )
{
cout<<iter->first<<" "<<iter->second<<endl;
}
iter++;
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator