3 6 4 2 2.5 5 1 3 4 5 1 3.5 2 2 2 1 1 1 1 1 10 3 3 2 1 2 3 2 3 1 3 1 2
6 5 3 1 2 1
#include<iostream> #include<algorithm> #include<string.h> const int M=100; using namespace std; bool cmp(int a,int b) { return a>b; } int main() { double ls[M][M]; double gq[M]; int flag[M]; int n,m,k,i,j,T; while(scanf("%d%d%d",&n,&m,&k)) { int x=0; memset(gq,0,sizeof(gq)); memset(ls,0,sizeof(ls)); memset(flag,0,sizeof(flag)); for( i=0;i<n;i++) for(j=0;j<m;j++) { scanf("%lf",&ls[i][j]); gq[j]+=ls[i][j]; } while(k--) { int max=-1; for(int t=0;t<m;t++) { if(gq[t]>max) { max=gq[t]; T =t; } } gq[T]=-1; flag[x++]=T+1; } sort(flag,flag+x,cmp); for(int p=0;p<x-1;p++) printf("%d ",flag[p]); printf("%d\n",flag[x-1]); } return 0; }
#include<iostream> #include<algorithm> #include<string.h> const int M=10000; using namespace std; int main() { double ls[M][M]; double gq[M]; int flag[M]; int n,m,k,i,j,T; while(scanf("%d%d%d",&n,&m,&k)) { int x=0,I=k; memset(gq,0,sizeof(gq)); memset(ls,0,sizeof(ls)); memset(flag,0,sizeof(flag)); for( i=0;i<n;i++) for(j=0;j<m;j++) { scanf("%lf",&ls[i][j]); gq[j]+=ls[i][j]; } while(k--) { int max=-1; for(int t=0;t<m;t++) { if(gq[t]>max) { max=gq[t]; T =t; } } gq[T]=-1; flag[T]=1; } for(int p=m-1;p>=0;p--) { if(flag[p]==1) { x++; if(x==I) { printf("%d\n",p+1); break; } else printf("%d ",p+1); } } } return 0; }
#include<cmath> #include<iostream> using namespace std; #include<algorithm> #include<string.h> const int N=10005; struct ls { int k; double sum; }gq[N]; bool cmp1(ls a,ls b) { return a.sum>b.sum; } bool cmp2(ls a,ls b) { return a.k>b.k; } int main() { int n,m,k,i; double re; while(~scanf("%d%d%d",&n,&m,&k)) { for(i=0;i<m;i++) { gq[i].k=i; gq[i].sum=0.0; } for(int j=0;j<n;j++) for(int t=0;t<m;t++) { scanf("%lf",&re); gq[t].sum+=re; } sort(gq,gq+m,cmp1); sort(gq,gq+k,cmp2); for(int w=0;w<k-1;w++) printf("%d ",gq[w].k+1); printf("%d\n",gq[k-1].k+1); } return 0; }
原文地址:http://blog.csdn.net/lsgqjh/article/details/44458731