Codeforces Round #298 (Div. 2) C. Polycarpus' Dice(思路)
2016-07-27 18:58
351 查看
题目地址:http://codeforces.com/problemset/problem/534/C
思路:对于当前色子,求出其他色子所能掷出的最小值之和与最大值之和。当其他色子取最小值时,该色子取最大值A-(n-1),大于该值均不可能;当其它色子取最大值,该色子取最小值A-sum+a[i],小于该值均不可能。则由不可能区间可以求出不可能掷出的数字个数。
思路:对于当前色子,求出其他色子所能掷出的最小值之和与最大值之和。当其他色子取最小值时,该色子取最大值A-(n-1),大于该值均不可能;当其它色子取最大值,该色子取最小值A-sum+a[i],小于该值均不可能。则由不可能区间可以求出不可能掷出的数字个数。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long LL; LL sum,A; int n,a[200050]; int main() { scanf("%d%I64d",&n,&A); for(int i=1; i<=n; i++) { scanf("%d",&a[i]); sum+=a[i]; } for(int i=1; i<=n; i++) { LL ans=0; LL tmp=A-(n-1); ans+=a[i]-tmp>0?a[i]-tmp:0; tmp=A-sum+a[i]; ans+=tmp-1>0?tmp-1:0; if(i==1) printf("%I64d",ans); else printf(" %I64d\n",ans); } return 0; }
相关文章推荐
- 杭电-4004 The Frog's Games(二分)
- 小问题总结
- Mysql学习总结(11)——MySql存储过程与函数
- Linux基础(2)--history命令
- java_接口的应用
- xib/StoryBoard中设置与Bottom Layout Guide相关的约束,push进来的闪一下
- uva10269
- Mysql学习总结(10)——MySql触发器使用讲解
- 最详细的Log4j使用教程
- hdoj2199Can you solve this equation?
- 华为oj--中级--购物单
- spring 学习之路——spring 初接触
- Mysql学习总结(9)——MySql视图原理讲解与使用大全
- 7.25笔记(history,man)
- 【c语言之break的作用】
- Spring编程式事务管理(xml注入)
- 分享一个用javafx写的cocos2dx命令行小工具
- OpenSearch 简单学习
- POJ2236 Wireless Network
- mdb