题解 CF255A 【Greg's Workout】
引领天下
2020-02-19 20:17:22
来一发不一样的做法。
我们读入的时候利用桶进行统计,但是我们将这个桶定义成一个结构体,那么我们就可以将运动的名称和做运动的次数绑定起来,然后就可以直接排序后输出了。
代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,x;
struct Node{
int s;//该运动做的次数
string c;//该运动的名称
inline bool operator < (const Node& p)const{
return s>p.s;//按做运动的次数降序排序
}
}a[5];
int main(){
scanf("%d",&n);
a[0].s=a[1].s=a[2].s=0,a[0].c="chest",a[1].c="biceps",a[2].c="back";//初始所有桶清空,并且标记好对应的运动名
for(int i=0;i<n;i++){
scanf("%d",&x);
a[i%3].s+=x;//取模后直接加到桶里
}
sort(a,a+3);//这里就很舒服,可以直接排序,排完序的第 1 个元素就是做的最多的运动,可以直接输出
cout<<a[0].c;
}
```