codeforces 659B Qualifying Contest
题目链接:http://codeforces.com/problemset/problem/659/B
题意:
n个人,m个区。给出n个人的姓名(保证不相同),属于的区域,所得分数。从每个区域中选出成绩最好的两个人去参加比赛,输出这两个人的名字。如果第三个人的成绩和第二个人的成绩相同,则输出“?”,保证结果不确定。
解题思路:
刚开始想用个什么STL容器把这三个属性存进去,然后根据区域的不同对每个区域的选手的分数进行排序,最后看选手确定,输出答案。
可是做比赛的时候没有想到应该用什么STL容器。
然后想到了用结构体。
结构体里面有选手的三个信息,然后对结构体进行排序。
交上去发现错了,后来发现是自己在写判断条件的时候出错了。对于判断条件与思路一定要条理清晰才不容易出错。
具体代码如下:
#include<bits/stdc++.h> using namespace std; struct p
{
string s;
int num;
int scro;
}P[]; bool cmp(p X,p Y) ///结构体排序
{
if(X.num==Y.num)
return X.scro>Y.scro;
return X.num<Y.num;
} int main()
{
int n,m,t1,t2;
string s1;
scanf("%d %d",&n,&m); for(int i=;i<n;i++) ///读入数据
{
cin>>P[i].s>>P[i].num>>P[i].scro;
} sort(P,P+n,cmp);///对数据按照一定的规则进行排序 for(int j=;j<=m;)
{
for(int i=;i<n;i++)
{
if(P[i].num==j) ///这里的判断条件一定要很清楚,不然容易出错。
{
if(P[i+].num==j)
{
if((P[i+].num==j&&P[i+].scro!=P[i+].scro)||(P[i+].num!=j))
cout<<P[i].s<<" "<<P[i+].s<<endl;
else
cout<<"?"<<endl;
}
else
{
cout<<"?"<<endl;
}
j++;
}
}
} return ;
}
codeforces 659B Qualifying Contest的更多相关文章
- Codeforces 659B Qualifying Contest【模拟,读题】
写这道题题解的目的就是纪念一下半个小时才读懂题...英文一多读一读就溜号... 读题时还时要静下心来... 题目链接: http://codeforces.com/contest/659/proble ...
- codeforces 659B B. Qualifying Contest(水题+sort)
题目链接: B. Qualifying Contest time limit per test 1 second memory limit per test 256 megabytes input s ...
- Codeforces Round #346 (Div. 2) B Qualifying Contest
B. Qualifying Contest 题目链接http://codeforces.com/contest/659/problem/B Description Very soon Berland ...
- Codeforces Round #346 (Div. 2) B. Qualifying Contest 水题
B. Qualifying Contest 题目连接: http://www.codeforces.com/contest/659/problem/B Description Very soon Be ...
- B. Qualifying Contest
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- codeforces E. The Contest(最长上升子序列)
题目链接:https://codeforces.com/contest/1257/problem/E 题意:给三个序列k1,k2,k3,每个序列有一堆数,k1是前缀,k3是后缀,k2是中间,现可以从任 ...
- 【37.74%】【codeforces 725D】Contest Balloons
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- CodeForces 474B E(Contest #1)
题意: 给你一个数n,代表n段区间,接下来有n个数(a1,a2,...an)代表每段区间的长度,第一段区间为[1,a1],第二段区间为[a1+1,a1+a2],...第i段区间为[ai-1+1,ai- ...
- CodeForces 546B C(Contest #1)
Description Colonel has n badges. He wants to give one badge to every of his n soldiers. Each badge ...
随机推荐
- MySQL中select * for update锁表的问题(转)
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料 ...
- Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
多种Windows Azure服务可以帮助您将应用程序安全性扩展到云. 有三种服务可提供多个提供程序之间的身份标识映射.内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处). ...
- 基于visual Studio2013解决C语言竞赛题之0611素数排序
题目
- 从汇编角度来理解linux下多层函数调用堆栈执行状态
注:在linux下开发经常使用的辅助小工具: readelf .hexdump.od.objdump.nm.telnet.nc 等,详细能够man一下. 我们用以下的C代码来研究函数调用的过程. C ...
- Hystrix 使用与分析
转载请注明出处哈:http://hot66hot.iteye.com/admin/blogs/2155036 一:为什么需要Hystrix? 在大中型分布式系统中,通常系统很多依赖(HTTP,hess ...
- STL容器总结
一. 种类: 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist和rope.sl ...
- DOM方法入门 - 第二课
1.console.log()是吧元素显示在控制台2.appendChild() 就是将元素追加到末尾3.innerHTML获取的是元素里面的所有内容包括里面的子元素4.innerText获取的是元素 ...
- poj 3263 Tallest Cow
一个压了很久的题目,确实很难想,看了别人的做法后总算明白了. 首先要明白一点,因为题目说明了不会有矛盾,所以题目给出来的区间是不能相交的,否则是矛盾的.(原因自己想) 然后既然区间只能是包含的,就很明 ...
- The FlexSession is invalid问题
package com.cmbj.soa.servicemonitor.view.service.impl; import java.util.Enumeration; import javax.se ...
- 生成md5密码
mysql> select md5(concat((select md5("admin123") from test limit 1),'`xx')) from test; ...