| ||||||||||
| 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 | |||||||||
我的解答250MS大家好,小弟我初来乍到,刚做了这题 AC了 给大家看下我的代码 大家给小弟我多指点指点哈~谢谢各位大虾了~~~~~
我的邮箱是yubo555123@126.com 欢迎同道中人共同探讨 共同进步!!
小弟给大家鞠躬啦~~~
这题只要按顺序存好最后来一次排序 再按顺序计算重复的有几个就欧拉~!时间只用了250MS^_^
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int n;
char s[80];
int a[100000];
int i,k;
int c = 0;
int f,g=1;
scanf("%d", &n);
getchar();
for(k=0; k<n; ++k)
{
int u = 0;
int f = 0;
gets(s);
for (i=0; s[i]!='\0'; ++i)
{
switch (s[i])
{
case 'A':
case 'B':
case 'C':
u = u*10+2;
break;
case 'D':
case 'E':
case 'F':
u = u*10+3;
break;
case 'G':
case 'H':
case 'I':
u = u*10+4;
break;
case 'J':
case 'K':
case 'L':
u = u*10+5;
break;
case 'M':
case 'N':
case 'O':
u = u*10+6;
break;
case 'P':
case 'R':
case 'S':
u = u*10+7;
break;
case 'T':
case 'U':
case 'V':
u = u*10+8;
break;
case 'W':
case 'X':
case 'Y':
u = u*10+9;
break;
default:
if (s[i]>='0' && s[i]<='9')
u = u*10+s[i]-48;
}
}
a[k] = u;
}
sort(a, a+n);
f = a[0];
for (i=1; i<n; ++i)
{
if (a[i] == f)
++g;
else
{
if (g != 1)
{
printf("%03d-%04d %d", f/10000, f%10000, g);
printf("\n");
c = 1;
}
f = a[i];
g = 1;
}
}
if (g != 1)
{
printf("%03d-%04d %d", f/10000, f%10000, g);
c = 1;
}
if (!c)
printf("No duplicates.\n");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator