AC代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct node{
double sum;
int number;
};
int cmp( const void *a, const void *b ){
if( ( (struct node*)b )->sum == ( (struct node*)a )->sum ){
return ( (struct node*)a )->number - ( (struct node*)b )->number;
}
return ( (struct node*)b )->sum - ( (struct node*)a )->sum;
}
int main(){
int N, M, K;
struct node s[10000];
int ans[10000];
while( scanf( "%d%d%d", &N, &M, &K ) != EOF ){
memset( s, 0, sizeof( s ) );
memset( ans, 0, sizeof( ans ) );
for( int i = 0; i < N; i++ ){
for( int j = 0; j < M; j++ ){
double temp;
cin >> temp;
s[j].sum += temp;
}
}
for( int i = 0; i < M; i++ ){
s[i].number = i;
}
qsort( s, M, sizeof( struct node ), cmp );
int temp = 0;
//while( s[temp].sum == s[temp+K].sum && temp < M - K ){
// temp++;
// }
for( int i = temp; i < temp + K; i++ ){
ans[i] = s[i].number;
}
sort( ans, ans + K );
for( int i = K - 1; i > 0; i-- ){
cout << ans[i] + 1 << " ";
}
cout << ans[0] + 1 << endl;
}
return 0;
}