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 |
各位牛哥们帮我看一下可以不?所以可用的数据都试了还是wa#include <iostream> #include <string> #include <algorithm> using namespace std; struct num { char a[8]; }; num input[100000]; bool cmp(const num &c,const num &d ) { for (int i = 0; i < 7; ++i) { if (c.a[i] != d.a[i]) { return c.a[i] < d.a[i]; } } return 0; } int main() { // freopen("in.txt","r",stdin); int n = 0; string temp = ""; int i,j,f; cin >> n; for (i = 0; i < n; ++i) { cin >> temp; int pa = 0; //point to a[]; for (j = 0; j < temp.length(); ++j) { if (temp[j] >= '0' && temp[j] <= '9') { input[i].a[pa] = temp[j]; ++pa; continue; } else if (temp[j] == 'A' || temp[j] == 'B' || temp[j] == 'C') { input[i].a[pa] = '2'; ++pa; continue; } else if (temp[j] == 'D' || temp[j] == 'E' || temp[j] == 'F') { input[i].a[pa] = '3'; ++pa; continue; } else if (temp[j] == 'G' || temp[j] == 'H' || temp[j] == 'I') { input[i].a[pa] = '4'; ++pa; continue; } else if (temp[j] == 'J' || temp[j] == 'K' || temp[j] == 'L') { input[i].a[pa] = '5'; ++pa; continue; } else if (temp[j] == 'M' || temp[j] == 'N' || temp[j] == 'O') { input[i].a[pa] = '6'; ++pa; continue; } else if (temp[j] == 'P' || temp[j] == 'R' || temp[j] == 'S') { input[i].a[pa] = '7'; ++pa; continue; } else if (temp[j] == 'T' || temp[j] == 'U' || temp[j] == 'V') { input[i].a[pa] = '8'; ++pa; continue; } else if (temp[j] == 'W' || temp[j] == 'X' || temp[j] == 'Y') { input[i].a[pa] = '9'; ++pa; continue; } else { continue; } } } // input the data sort(input,input+n,cmp); //排序 int flag = 0; for (i = 0,f = 1; i < n,f < n; ) { if (strcmp(input[f].a,input[i].a) == 0) { flag = 1; if (f == n-1 && f!=i) { for (j = 0; j < 7; ++j) { cout << input[i].a[j]; if (j == 2) { cout << '-'; } } cout << " " << f+1-i << endl; break; } ++f; } else if ( (f-i)>1) { for (j = 0; j < 7; ++j) { cout << input[i].a[j]; if (j == 2) { cout << "-"; } } cout << " " << f-i << endl; i = f; } else { i = f; } } if (flag == 0 || n == 1) { cout << "No duplicates." << endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator