code
2023-01-13 16:40:15
发布于:山东
117阅读
0回复
0点赞
结构体的模板题。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e7+10;
int n;
inline int read()
{
char c=getchar();
int x=0,s=1;
while(c<'0' or c>'9')
{
if(c=='-')
{
s=-1;
}
c=getchar();
}
while(c>='0' and c<='9')
{
x=x*10+c-'0';
c=getchar();
}
return x*s;
}
void write(int x)
{
if(x<0)
{
putchar('-'),x=-x;
}
if(x>9)
{
write(x/10);
}
putchar(x%10+'0');
return;
}
struct node
{
int student,chinese,math,english,cnt;
}arr[maxn];
bool cmp(node x,node y)
{
if(x.cnt>y.cnt)
{
return true;
}
else if(x.cnt==y.cnt)
{
if(x.chinese>y.chinese)
{
return true;
}
else if(x.chinese==y.chinese)
{
if(x.student>y.student)
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
signed main()
{
n=read();
for(int i=1;i<=n;i++)
{
arr[i].chinese=read();
arr[i].math=read();
arr[i].english=read();
arr[i].student=i;
arr[i].cnt=arr[i].chinese+arr[i].math+arr[i].english;
}
sort(arr+1,arr+n+1,cmp);
for(int i=1;i<=5;i++)
{
write(arr[i].student);
cout<<" ";
write(arr[i].cnt);
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个