zhengdd @ 2016-11-16 12:24:50
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<stack>
#include<cstring>
#include<string>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
const int maxn = 10000 + 10;
int n;
struct node
{
int a;
int b;
int c;
int sum ;
int id;
bool operator < (const node & x) const
{
if(sum==x.sum)
{
if(a==x.a)
{
return id<x.id;
}else
{
return a>x.a;
}
}else
{
return sum>x.sum;
}
}
}s[maxn];
bool cmp(node x,node y)
{
if(x.sum==y.sum)
{
return x.a>y.a;
}else
{
return x.sum>y.sum;
}
}
void solve()
{
while(scanf("%d",&n)!=EOF)
{
memset(s,0,sizeof(s));
for(int i = 0;i<n;i++)
{
scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].c);
s[i].sum = s[i].a +s[i].b + s[i].c;
s[i].id = i + 1;
}
///sort(s,s+n);
sort(s,s+n);
for(int i = 0;i<5;i++)
{
printf("%d %d\n",s[i].id ,s[i].sum);
}
}
}
int main()
{
solve();
return 0;
}
by 嘲纸巾 @ 2016-11-17 16:27:38
直接把答案发过来
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int a[1000],b[1000],c[1000],d[1000],f[1000];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i]>>c[i];
d[i]=a[i]+b[i]+c[i];
f[i]=i;
}
for(int i=1;i<=n-1;i++)
{
for(int j=i+1;j<=n;j++)
{
if(d[i]<d[j])
{
int o=d[i];d[i]=d[j];d[j]=o;
int p=f[i];f[i]=f[j];f[j]=p;
int l=a[i];a[i]=a[j];a[j]=l;
}
if(d[i]==d[j])
{
if(a[i]<a[j])
{
int o=d[i];d[i]=d[j];d[j]=o;
int p=f[i];f[i]=f[j];f[j]=p;
int l=a[i];a[i]=a[j];a[j]=l;
}
if(a[i]==a[j])
{
if(f[i]>f[j])
{
int o=d[i];d[i]=d[j];d[j]=o;
int p=f[i];f[i]=f[j];f[j]=p;
int l=a[i];a[i]=a[j];a[j]=l;
}
}
}
}
}
for(int i=1;i<=5;i++)
{
cout<<f[i]<<" "<<d[i]<<endl;
}
return 0;
}