博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Good Bye 2016 - C
阅读量:6982 次
发布时间:2019-06-27

本文共 1763 字,大约阅读时间需要 5 分钟。

 

题目链接: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
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long int LL;const int MAXN = 2e5 + 10;const int INF = 2e8;struct Node{ int c, d;}Contest[MAXN];bool check(int x, int n){ LL Rank = x; for (int i = 0; i < n; i++){ if (Rank >= 1900 && Contest[i].d == 2){ //高了 return true; } else if (Rank<1900 && Contest[i].d == 1){ //低了 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 = 0; i < n; i++){ scanf("%d%d", &Contest[i].c, &Contest[i].d); } int L = -INF, R = INF, mid; while (R >= L) { mid = (L + R) >> 1; if (check(mid, n)){ R = mid - 1; } else{ L = mid + 1; } } if (R == INF){ printf("Infinity\n"); } else{ LL ans = R; bool flag = true; for (int i = 0; i < n; i++){ //最后再判一遍是否与输入合法 if (ans >= 1900 && Contest[i].d == 2){ flag = false; } else if (ans<1900 && Contest[i].d == 1){ 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 0;}

 

转载于:https://www.cnblogs.com/kirito520/p/6238970.html

你可能感兴趣的文章
javascript模块化、模块加载器初探
查看>>
PL/SQL Developer远程访问Oracle数据库
查看>>
我的友情链接
查看>>
eclipse插件安装方法
查看>>
Javascript中的字符串链接和Array.join()方法时间效率对比
查看>>
为什么用Immutable.js代替普通js对象?
查看>>
Ossim系统常见测试方法
查看>>
创业那些年,我们一起走过的坑
查看>>
Oracle软件的美学变迁
查看>>
HttpServlet中getAllDeclaredMethods()方法
查看>>
面试题2:二维数组中的查找
查看>>
文件上传的渐进式增强
查看>>
leetcode -- Sort Colors
查看>>
C#中使用自定义的纸张大小
查看>>
1z0-052 q209_3
查看>>
行测题哦
查看>>
JavaScript Window Navigator 浏览器本身的信息
查看>>
使用Android Ant在编译时混淆
查看>>
通过Servlet 将服务器硬盘图片 展示到浏览器
查看>>
linux_nand_driver
查看>>