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;
}
#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;
}
相关文章推荐
- poj1002
- Poj 1002 487-3279
- poj1000-1002
- poj_1002_487-3279
- 【String+Map版】从poj 1002——487-3279的STL做法和若干陷阱来分析MAP
- POJ--1002--487-3279
- POJ 1002 487-3279 解题报告
- poj 1002
- Road of poj-1002
- POJ 1002 487-3279
- POJ 1002 487-3279
- POJ 1002 电话号码字符串处理
- poj_1002大神版
- poj 1002:487-3279(水题,提高题 / hash)
- POJ 1002 解题分析
- [DP] POJ - 1002 487-3279
- POJ1002 487-3279 字符串 C语言
- POJ 1002 487-3279 [解题报告] Java
- Poj_1002_java解决
- poj 1002 487-3279