UVA755- 487-3279
对于这个题,花费的时间也不少。
错误一;由于考虑不全
1
40
0U--4N712
---X2-KN-U-75
VR-J37G--3
85W-0Y6-V
85W-0Y6-V
85W-0Y6-V
--N-6AV4-NK
--XL----F-PO--B-0
-P-10167P
7--R8YME-N
P-U-1O6W-----1
X-KFK87--L
YFX63K-N
-3-73G---ELH
--2RD-6-IJ-Y
P2--SJ9G9
P2--SJ9G9
O-1----2287-2
-DC-C1L-3V
7963V68
U-66X52M
U-66X52M
-8-16F5TG
---YN-32E5-K
---YN-32E5-K
4--KDJ-PV2
4--KDJ-PV2
P27-42L2
P27-42L2
-MIWO-W5D
44M7675
F---6-7R80M
T5S6U1-P
T5S6U1-P
T5S6U1-P
BUM85L--3
BUM85L--3
DB1E---046
36O--7-1W2
-R--52-P-Y7H
输出:
286-8553 2
453-5782 2
727-4252 2
727-5949 2
857-6817 3
859-0968 3
866-9526 2
963-2355 2
最后的两个号码相同时,不会输出,
我完善了循环后
交上还是wa
这就是因为错误二,
不认真读题
没有重复的时候应该输出No duplicates.
错误一;由于考虑不全
1
40
0U--4N712
---X2-KN-U-75
VR-J37G--3
85W-0Y6-V
85W-0Y6-V
85W-0Y6-V
--N-6AV4-NK
--XL----F-PO--B-0
-P-10167P
7--R8YME-N
P-U-1O6W-----1
X-KFK87--L
YFX63K-N
-3-73G---ELH
--2RD-6-IJ-Y
P2--SJ9G9
P2--SJ9G9
O-1----2287-2
-DC-C1L-3V
7963V68
U-66X52M
U-66X52M
-8-16F5TG
---YN-32E5-K
---YN-32E5-K
4--KDJ-PV2
4--KDJ-PV2
P27-42L2
P27-42L2
-MIWO-W5D
44M7675
F---6-7R80M
T5S6U1-P
T5S6U1-P
T5S6U1-P
BUM85L--3
BUM85L--3
DB1E---046
36O--7-1W2
-R--52-P-Y7H
输出:
286-8553 2
453-5782 2
727-4252 2
727-5949 2
857-6817 3
859-0968 3
866-9526 2
963-2355 2
最后的两个号码相同时,不会输出,
我完善了循环后
交上还是wa
这就是因为错误二,
不认真读题
没有重复的时候应该输出No duplicates.
以后做题,还是得注意这两个方面!!!
#include <iostream> #include <cstdlib> using namespace std; int com (const void *a,const void *b) { int * c = (int *)a; int * d = (int *)b; for(int i = 0; i < 7; i++) { //cout<<*(c+i) <<" "<< *(d+i)<<endl; if(*(c+i) != *(d+i))return *(c+i) - *(d+i); } return 0; } int main () { int n; cin>>n; while(n--) { int flag = 0; int num; cin>>num; cin.get(); //cout<<num<<endl; int a[num][7]; int N = num; while(N) { N--; int i = 0; char ch; while((ch=cin.get())!='\n') { if(ch>='A'&&ch<='P')a[N][i++] = (ch-'A')/3+2; else if(ch == 'R'||ch == 'S')a[N][i++] = 7; else if(ch>='T'&&ch<='Y')a[N][i++] = (ch-'T')/3+8; if(ch>='0'&&ch<='9')a[N][i++] = ch-'0'; } // for( i = 0; i < 7; i++) // cout<<a[N][i]; // cout<<endl; } qsort(a,num,sizeof(a[0]),com); int count = 1; for(int i = 0; i < num-1; i++) { for(int j = 0; j < 7; j++) { if(a[i][j]!=a[i+1][j]) { if(count>1) {flag = 1; for(int k = 0; k < 7; k ++) { if(k == 3)cout<<"-"; cout<<a[i][k]; } cout<<" "<<count; cout<<endl; } count = 1; break; } else if( j == 6)count++; } if(i == num-2&&count>1) {flag = 1; for(int k = 0; k < 7; k ++) { if(k == 3)cout<<"-"; cout<<a[i][k]; } cout<<" "<<count; cout<<endl; } } if(!flag)cout<<"No duplicates."<<endl; if(n)cout<<endl; } return 0; }