您的位置:首页 > 其它

poj 1002

2012-12-09 15:25 218 查看
#include <iostream>

#include <cstdio>

#include <string>

#include <cstring>

using namespace std;

int a[10000000];

int b[9];

long ph[100000];

string s;

long i;

long n, t, k, tmp;

bool flag;

int main()

{
scanf("%ld", &n);
for (i = 1; i <= n; i++)
{
cin >> s;
t = 1;
k = 0;
flag = true;
for (int j = s.length()- 1; j >= 0; j--)
{
if (s[j] == '-') continue;
else if ((s[j] >= '0') && (s[j] <= '9'))
{
k = k + (s[j] - '0') * t;
t = t * 10; 
}
else if ((s[j] >= 'A') && (s[j] <= 'Z'))
{
if ((s[j] == 'A') || (s[j] == 'B') || (s[j] == 'C'))
{
k = k + 2 * t;
t = t * 10;
}
if ((s[j] == 'D') || (s[j] == 'E') || (s[j] == 'F'))
{
k = k + 3 * t;
t = t * 10;
}
if ((s[j] == 'G') || (s[j] == 'H') || (s[j] == 'I'))
{
k = k + 4 * t;
t = t * 10;
}
if ((s[j] == 'J') || (s[j] == 'K') || (s[j] == 'L'))
{
k = k + 5 * t;
t = t * 10;
}
if ((s[j] == 'M') || (s[j] == 'N') || (s[j] == 'O'))
{
k = k + 6 * t;
t = t * 10;
}
if ((s[j] == 'P') || (s[j] == 'R') || (s[j] == 'S'))
{
k = k + 7 * t;
t = t * 10;
}
if ((s[j] == 'T') || (s[j] == 'U') || (s[j] == 'V'))
{
k = k + 8 * t;
t = t * 10;
}
if ((s[j] == 'W') || (s[j] == 'X') || (s[j] == 'Y'))
{
k = k + 9 * t;
t = t * 10;
}
}
}
a[k]++;
}
flag = false;
for (i = 0; i <= 9999999; i++)
{
if (a[i] > 1)
{
flag = true;

            tmp = i;
t = 0;
memset(b, 0, sizeof(b));
while (tmp > 0)
{
t++;
b[t] = tmp % 10;
tmp = tmp / 10;
}
for (int j = 7; j >= 1; j--)
{
printf("%d", b[j]);
if (j == 5) printf("-");
}
printf(" %d\n", a[i]);
}
}
if (!flag) printf("No duplicates.\n");
//system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: