简单的模拟题,我用了优先队列提了一下速度,poj的c++有开stl提速,g++没有,速度2倍多差距啊。。。
Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
9196271 | 201030720425 | 1002 | Accepted | 49296K | 485MS | C++ | 1238B | 2011-08-19 21:13:15 |
9196270 | 201030720425 | 1002 | Accepted | 49296K | 500MS | C++ | 1238B | 2011-08-19 21:12:49 |
9196265 | 201030720425 | 1002 | Accepted | 49684K | 1172MS | G++ | 1238B | 2011-08-19 21:12:22 |
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;
int m[256];
int vd[10000000];
bool vs[10000000];
priority_queue< int > q;
int main()
{
m['0']=0; m['1']=1;
m['2']=2;m['A']=2;m['B']=2;m['C']=2;
m['3']=3;m['D']=3;m['E']=3;m['F']=3;
m['4']=4;m['G']=4;m['H']=4;m['I']=4;
m['5']=5;m['J']=5;m['K']=5;m['L']=5;
m['6']=6;m['M']=6;m['N']=6;m['O']=6;
m['7']=7;m['P']=7;m['R']=7;m['S']=7;
m['8']=8;m['T']=8;m['U']=8;m['V']=8;
m['9']=9;m['W']=9;m['X']=9;m['Y']=9;
int n,len;
char ss[100],s[100];
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
{
scanf("%s",s);
getchar();
len=strlen(s);
int num=0;
for(int j=0;j<len;j++)
{
if(s[j]=='-'||s[j]=='Q'||s[j]=='Z')
continue;
else
{
num=num*10+m[s[j]];
}
}
vd[num]++;
if(!vs[num]&&vd[num]>=2)
q.push(-num),vs[num]=1;
}
if(q.empty())
printf("No duplicates.\n");
while(q.empty()==0)
{
int tem=-q.top();
q.pop();
sprintf(ss,"%07d",tem);
for(int j=0;j<7;j++)
if(j==2)
printf("%c-",ss[j]);
else
printf("%c",ss[j]);
printf(" %d\n",vd[tem]);
}
return 0;
}