ACM在决赛每解决掉一个问题,会放一个气球,每个问题对应气球的颜色不同,自然,被放出的气球越多的问题,意味着它可能更容易被解决。
Input:
第一行输入测试用例的数量T
每组测试用例,先输入问题的数量N,接下来N行,每行是该问题对应的气球及放出气球数量。
Output:
对于每组测试用例,从易到难输出要解决的问题的颜色,颜色之间以空格分隔,一组测试用例对应一行输出。
AC代码: (代码性能15ms-1812K)
#include <iostream>
using namespace std;
typedef long long ll;
struct PRO
{
char name[15];
int cnt;
}pro[15];
bool cmp(PRO a,PRO b)
{
return a.cnt>b.cnt;
}
int main()
{
int T,N;
cin>>T;
while(T--)
{
cin>>N;
for(int i=1;i<=N;i++)
cin>>pro[i].name>>pro[i].cnt;
sort(pro+1,pro+N+1,cmp);
for(int i=1;i<=N;i++)
{
if(i==1) //第一个输出颜色
cout<<pro[i].name;
else //不是第一个输出空格+颜色
cout<<" "<<pro[i].name;
if(i==N) //最后一个输出换行
cout<<endl;
}
}
return 0;
}
本文介绍了一道ACM竞赛经典题目“气球题”的解题思路与AC代码实现。通过统计各颜色气球的释放数量来判断问题的难易程度,采用C++结构体与排序函数进行高效处理。

被折叠的 条评论
为什么被折叠?



