#include<stdio.h>
int main()
{
int n,m=0;
scanf("%d %d",&n,&m);
int arr[n+1][m];
int i,j,t,k=0;
int arr2[n+1];
for(i = 0;i < n;i++)
{
for(j = 0;j < m;j++)
{
scanf("%d",&arr[i][j]);
}
getchar();
}
for(i = 0;i < n;i++)
{
for(j = 0;j < n;j++)
{
t = 0;
for(k = 0;k < m;k++)
{
if( arr[i][k] < arr[j][k] )
{
t = 1;
}
else
{
t = 0;
break;
}
}
if(t == 1)
{
arr2[i] = j+1;
break;
}
}
if(t == 0)
{
arr2[i] = 0;
}
printf("%d\n",arr2[i]);
}
return 0;
}
我先开始用的是,如果arr[i][k] < arr[j][k] ,t++,这样的话得分只有30,例子是对的,但是csp上面只有30分,后来就改变了思路,arr[i][k] < arr[j][k],t = 1,只有全小于的时候,循环出来的结果才会是1。如果整个数组遍历结束,还没有找到,t = 1,那么他就是物流中心,编号为0.