PTA乙级 (*1015 德才论 (25分))
1015 德才论 (25分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
struct student{
int number;
int moral;
int ability;
};
bool cmp(student a,student b)
{
if(a.moral+a.ability!=b.moral+b.ability) return a.moral+a.ability>b.moral+b.ability;
else{
if(a.moral!=b.moral) return a.moral>b.moral;
else return a.number<b.number;
}
}
int main()
{
std::ios::sync_with_stdio(false);
student t;
vector<student> vec1,vec2,vec3,vec4;
int N,L,H,m=0;
cin>>N>>L>>H;
for(int i=0;i<N;i++)
{
cin>>t.number>>t.moral>>t.ability;
if(t.moral>=L&&t.ability>=L)
{
m++;
if(t.moral>=H&&t.ability>=H) vec1.push_back(t);
else if(t.moral>=H&&t.ability<H) vec2.push_back(t);
else if(t.moral<H&&t.ability<H&&t.moral>=t.ability) vec3.push_back(t);
else vec4.push_back(t);
}
}
sort(vec1.begin(),vec1.end(),cmp);
sort(vec2.begin(),vec2.end(),cmp);
sort(vec3.begin(),vec3.end(),cmp);
sort(vec4.begin(),vec4.end(),cmp);
cout<<m<<"\n";
for(int i=0;i<vec1.size();i++) cout<<vec1[i].number<<" "<<vec1[i].moral<<" "<<vec1[i].ability<<"\n";
for(int i=0;i<vec2.size();i++) cout<<vec2[i].number<<" "<<vec2[i].moral<<" "<<vec2[i].ability<<"\n";
for(int i=0;i<vec3.size();i++) cout<<vec3[i].number<<" "<<vec3[i].moral<<" "<<vec3[i].ability<<"\n";
for(int i=0;i<vec4.size();i++) cout<<vec4[i].number<<" "<<vec4[i].moral<<" "<<vec4[i].ability<<"\n";
return 0;
}
参考:https://blog.csdn.net/qq_37729102/article/details/81633082
天晴了,起飞吧

浙公网安备 33010602011771号