Good Bye 2016 - C
题目链接:http://codeforces.com/contest/750/problem/C
题意:在CF中,每个人都有个Rank值。 当Rank>=1900时,为DIV1。Rank<1900时,为DIV2。现在给你参加每一场的DIV值和参加完这一层后的Rank值变化。问最大可能的初始Rank值。如果答案无限大输出Infinity,如果不可能出现输入的情况输出impossible。其他情况输出可能的最大答案。
思路:二分初始Rank值,然后在二分出来的初始Rank值在计算过程中发现分值在DIV1但是输入为DIV2表示初始分值高了,否则低了。
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<stdio.h>
#include<queue>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<time.h>
#include<cmath>
using namespace std;
typedef long long int LL;
const int MAXN = 2e5 + ;
const int INF = 2e8;
struct Node{
int c, d;
}Contest[MAXN];
bool check(int x, int n){
LL Rank = x;
for (int i = ; i < n; i++){
if (Rank >= && Contest[i].d == ){ //高了
return true;
}
else if (Rank< && Contest[i].d == ){ //低了
return false;
}
else{
Rank += Contest[i].c;
}
}
return false;
}
int main(){
//#ifdef kirito
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
//#endif
// int start = clock();
int n;
while (scanf("%d", &n) != EOF){
for (int i = ; i < n; i++){
scanf("%d%d", &Contest[i].c, &Contest[i].d);
}
int L = -INF, R = INF, mid;
while (R >= L)
{
mid = (L + R) >> ;
if (check(mid, n)){
R = mid - ;
}
else{
L = mid + ;
}
}
if (R == INF){
printf("Infinity\n");
}
else{
LL ans = R; bool flag = true;
for (int i = ; i < n; i++){ //最后再判一遍是否与输入合法
if (ans >= && Contest[i].d == ){
flag = false;
}
else if (ans< && Contest[i].d == ){
flag = false;
}
else{
ans += Contest[i].c;
}
}
if (flag){
printf("%I64d\n", ans);
}
else{
printf("Impossible\n");
}
}
}
//#ifdef LOCAL_TIME
// cout << "[Finished in " << clock() - start << " ms]" << endl;
//#endif
return ;
}
Good Bye 2016 - C的更多相关文章
- codeforces Good bye 2016 E 线段树维护dp区间合并
codeforces Good bye 2016 E 线段树维护dp区间合并 题目大意:给你一个字符串,范围为‘0’~'9',定义一个ugly的串,即串中的子串不能有2016,但是一定要有2017,问 ...
- Good Bye 2016 A. New Year and Hurry【贪心/做题目每道题花费时间按步长为5等差增长,求剩余时间够做几道题】
A. New Year and Hurry time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Codeforces Good Bye 2016 E. New Year and Old Subsequence
传送门 题意: 给出一个长度为\(n\)的串,现在有\(q\)个询问,每个询问是一个区间\([l,r]\),要回答在区间\([l,r]\)中,最少需要删多少个数,满足区间中包含\(2017\)的子序列 ...
- Good Bye 2016
A - New Year and Hurry (water) #include <bits/stdc++.h> using namespace std; int main() { ]; ; ...
- Good Bye 2016 - D
题目链接:http://codeforces.com/contest/750/problem/D 题意:新年烟花爆炸后会往两端45°差分裂.分裂完后变成2部分,之后这2部分继续按这种规则分裂.现在给你 ...
- Good Bye 2016 - B
题目链接:http://codeforces.com/contest/750/problem/B 题意:地球的子午线长度为40000,两极点的距离为20000.现在你从北极出发,按照题目输入方式来走. ...
- Good Bye 2016 - A
题目链接:http://codeforces.com/contest/750/problem/A 题意:有n场比赛要打,第i场比赛需要花i*5分钟来完成,比赛从20:00开始.然后新年派对24:00开 ...
- Good Bye 2016 //智商再次下线,边界爆炸.....
A B很水就略了.. C.又是一次wannafly一样的判断区间的..... 边界设为2000000 正好GG...... fst的时候立马想到上次也是这么wa过的...... 所以下次遇到这种题 ...
- Codeforces Good Bye 2016 D 模拟搜索?
给出烟花的爆炸方式和爆炸次数 问最后有多少个格子会被炸到 如果dfs的话会超时... 利用模拟每一层来搜索..? 思想就是一开始有一个爆炸点向上 然后模拟完第一段 会产生一个爆炸点 朝两个方向 就用v ...
随机推荐
- 了解了下spring boot,说一下看法
这段时间比较忙,新项目的事比较多,跟着老大忙前忙后,没准备写博客. 下班地铁上看视频,发现spring boot的公开课,看完后,就准备抒抒情怀: 1.从个人的角度来看,使用spring boot可能 ...
- 同步(Synchronous)和异步(Asynchronous)
目录 概念性 图示例 举个例子 回到顶部 概念性 同步和异步通常用来形容一次方法调用. 同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为. 异步方法调用更像一个消息传递,一旦开始 ...
- Linux 系统命令
1.ctrl+z 让正在运行的任务暂停运行, 然后可用 bg %jobId使之后台运行,相当于: 命令 & 2. jobs -l 查看任务 3. echo $$ 查看当前进程 4.nohup ...
- 【Unity3d】3d网页游戏场景打包与加载
http://www.cnblogs.com/dosomething/archive/2012/04/07/2436353.html 3d游戏中 一个场景往往比较大 如果游戏的进行需要下载一个10 ...
- phpcms 表单提交发送邮件
修改 phpcms\modules\formguide index.php 找到 foreach ($mails as $m) { sendmail($m, L('tips'), $this-> ...
- mac 关闭&&显示隐藏文件命令
打开终端,输入: defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件 defaults write com.a ...
- Cnblogs自定义皮肤css样式-星空观测者
不知不觉来Cnblogs也这么久了,然而Blogs提供的主题还是依旧那么复古,总觉得阅读起来难免枯燥,虽然我认为做技术不可以太过浮躁,但是一个美观的主题终究是吸引人眼的第一要素. 毕竟这么久了,在博客 ...
- Python~字典
if not isinstance(x, (int, float)): raise TypeError('bad operand type') range() raw_input(‘birth’) ...
- MongoDB 学习笔记一: 配置
下载MongoDB 下载地址:https://www.mongodb.com/download-center?jmp=nav#community 这里是在windows平台下安装MongoDB, 下载 ...
- linux vim 插入行号
1 在文本中插入行号 最近有朋友提到某编辑器有一个可以插入行号的插件,问Vim有没有办法可以在文章中插入行号.%$^&*#8~#$@#!--让我们看一下有多少种方式可以在vim中插入行号或数字 ...