| ||||||||||
| 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 | |||||||||
额。。菜鸟求教。。c++的编译效率比g++要高么?同样的代码用g++的时候就是TLE但是换成c++竟然通过了。。。。虽然时间是1.5s效率非常非常低。。
代码:
#include <iostream>
#include <iomanip>
#include <locale>
#include <sstream>
#include <map>
#include <string>
using namespace std;
int stdnumber (const string & s)
{
int size = s.size();
int result=0;
for (int i = 0; i<size; i++)
{
char aux = s[i];
if (aux == '-') continue;
else if (aux >= '0' && aux<= '9')
result = result*10+aux-'0';
else if (aux >= 'A' && aux <= 'R')
result= result *10 + ((aux-'A')/3+2);
else if (aux >= 'S' && aux <= 'Y')
result = result * 10+((aux-'A' - 1) /3+2);
//cout<<aux<<" "<<result<<endl;
}
return result;
}
int main (void)
{
int length;
cin>> length;
map<int,int> dic;
bool duplicated = false;
string s;
for (int i =0 ; i< length ;i++)
{
cin>>s;
int number = stdnumber(s);
//cout<<number<<endl;
dic[number]++;
}
for (map<int,int>::iterator it = dic.begin(); it != dic.end();it++)
{
if (it-> second != 1)
{
string str;
ostringstream convert;
convert<< (it->first);
str = convert.str();
for (int i = str.size();i<7;i++)
str.insert(0,1,'0');
//cout<<str<<endl;
duplicated = true;
cout<<(str.insert(3,1,'-'))<<" "<<it->second<<endl;
}
}
if (!duplicated) cout<<"No duplicates. ";
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator