HDU1177 "Accepted today?"
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1177
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int MAX_SIZE = 150;
struct score
{
int problems;//解出的题数
string time;//用时
bool isTarget;//是否目标
};
struct score scores[MAX_SIZE];
int N,G,S,C,M,P;
bool compare(const score& s1, const score &s2)
{
if (s1.problems > s2.problems)
{
return true;
}
else if (s1.problems < s2.problems)
{
return false;
}
else
{//题数相同,比较用时
if (s1.time.compare(s2.time) > 0)
{
return false;
}
else if (s1.time.compare(s2.time) < 0)
{
return true;
}
}
}
int findTargetPos()
{//找到排序后的目标位置
int pos = -1;
for (int i = 0; i < N; ++i)
{
if (scores[i].isTarget == true)
{
pos = i;
break;
}
}
return pos + 1;
}
int main()
{
int i,pos;
while (cin >> N >> G >> S >> C >> M )
{
if(N == 0 && G == 0 && S == 0 && C == 0 && M == 0)break;
for (i = 0; i < N; ++i)
{
cin >> scores[i].problems >> scores[i].time;
scores[i].isTarget = false;
if (i == M - 1)
{
scores[i].isTarget = true;
}
}
sort(scores, scores + N, compare);
pos = findTargetPos();
if (pos <= G)
{
cout <<"Accepted today? I've got a golden medal :)" << endl;
}
else if (pos <= G + S)
{
cout <<"Accepted today? I've got a silver medal :)" << endl;
}
else if (pos <= G + S + C)
{
cout <<"Accepted today? I've got a copper medal :)" << endl;
}
else
{
cout << "Accepted today? I've got an honor mentioned :)" << endl;
}
}
return 0;
}
#include <algorithm>
#include <string>
using namespace std;
const int MAX_SIZE = 150;
struct score
{
int problems;//解出的题数
string time;//用时
bool isTarget;//是否目标
};
struct score scores[MAX_SIZE];
int N,G,S,C,M,P;
bool compare(const score& s1, const score &s2)
{
if (s1.problems > s2.problems)
{
return true;
}
else if (s1.problems < s2.problems)
{
return false;
}
else
{//题数相同,比较用时
if (s1.time.compare(s2.time) > 0)
{
return false;
}
else if (s1.time.compare(s2.time) < 0)
{
return true;
}
}
}
int findTargetPos()
{//找到排序后的目标位置
int pos = -1;
for (int i = 0; i < N; ++i)
{
if (scores[i].isTarget == true)
{
pos = i;
break;
}
}
return pos + 1;
}
int main()
{
int i,pos;
while (cin >> N >> G >> S >> C >> M )
{
if(N == 0 && G == 0 && S == 0 && C == 0 && M == 0)break;
for (i = 0; i < N; ++i)
{
cin >> scores[i].problems >> scores[i].time;
scores[i].isTarget = false;
if (i == M - 1)
{
scores[i].isTarget = true;
}
}
sort(scores, scores + N, compare);
pos = findTargetPos();
if (pos <= G)
{
cout <<"Accepted today? I've got a golden medal :)" << endl;
}
else if (pos <= G + S)
{
cout <<"Accepted today? I've got a silver medal :)" << endl;
}
else if (pos <= G + S + C)
{
cout <<"Accepted today? I've got a copper medal :)" << endl;
}
else
{
cout << "Accepted today? I've got an honor mentioned :)" << endl;
}
}
return 0;
}
作者:洞庭散人
出处:http://phinecos.cnblogs.com/
本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。
posted on 2009-09-14 20:23 Phinecos(洞庭散人) 阅读(1163) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述