看大神的代码后才会做
打擂台相似的想法
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
int n,m;
int people[512][2512];
int compare(int a,int b)
{
int c1=0;
int c2=0;
for(int i=0;i<n;i++)
if(people[i][a]<people[i][b])
c1++;
else
c2++;
return c1-c2;
}
int cas=1;
int main()
{
int i,j;
while(scanf("%d%d",&n,&m),n|m)
{
int a,b;
for( i=0;i<n;i++)
{
for( j=0;j<m;j++)
{
scanf("%d",&a);
people[i][a]=j;
}
}
int win=0;
for( i=1;i<m;i++)
{
if(compare(win,i)<=0)
win=i;
}
for( i=0;i<m;i++)
if(i!=win)
{
if(compare(win,i)<=0)
break;
}
if(i==m)
printf("Case %d: %d\n",cas++, win);
else
printf("Case %d: No Condorcet winner\n",cas++);
}
}