| ||||||||||
| 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 | |||||||||
不知道哪里错了。。。。。。有dalao麻烦帮忙看一下#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAXN = 10005;
const int MAXM = 10000007;
const int B = 47;
int num[MAXN][4], stu[MAXM], N;
char str[MAXN][15];
int Hash(char s[]) {
int res = 0;
for (int i = 0; i<15; i++) {
res = (s[i] - '0' + res*B) % MAXM;
}
return res;
}
int main() {
while (scanf("%d", &N) && N) {
memset(stu, 0, sizeof(stu));
for (int i = 0; i<N; i++) {
for (int j = 0; j<5; j++)
scanf("%d", &num[i][j]);
sort(num[i], num[i] + 5);
for (int j = 0; j<5; j++)
sprintf(&str[i][j * 3], "%d", num[i][j]);
stu[i] = Hash(str[i]);
}
sort(stu, stu + N);
int sum = 0, Max = 0, maxn = 1, cur = 1; //maxn记录单个的,Max记录总的,cur记录当前找到的最多的
int i = 0;
while (i < N) {
int j = i + 1;
cur = 1;
while (stu[j] == stu[i]) {
cur++;
j++;
}
if (cur > maxn) {
maxn = cur;
Max = cur;
}
else if (cur == maxn)
Max += maxn;
i = j;
}
printf("%d\n", Max);
}
return 0;
}
/*
10
101 104 103 105 107
101 103 102 104 105
101 104 103 105 102
101 103 105 106 102
107 104 102 109 103
108 104 106 101 105
102 103 105 106 107
101 103 104 105 107
101 106 102 105 103
101 107 104 106 103
3
100 101 102 103 488
100 200 300 101 102
103 102 101 488 100
3
200 202 204 206 208
123 234 345 456 321
100 200 300 400 444
3
100 101 102 103 104
100 104 103 102 101
104 101 102 103 100
0
6
2
3
3
*/
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator