应邀评审

应邀评审

https://ac.nowcoder.com/acm/problem/308638

#include #include #include using namespace std; int main() { int n, x; cin >> n >> x; int a[200001]; long long sum = 0; for (int i = 0; i < n; ++i) { cin >> a[i]; sum += a[i]; } sort(a, a + n); long long c = 600000000LL * (n - 1) + a[0] + a[n - 1] - sum; if(c<a[0]) { cout<<x<<endl; } else if(c>a[n-1]){ cout<<-1<<endl; } else { if(c<x) cout<<x<<endl; else cout<<c<<endl; } }

核心思路:首先通过公式计算出满足条件2的最小的分数X,然后看它如果大于a[n-1],那肯定不符合条件;如果小于a[0],那就是任意都可以;如果是在区间内,那就判断和x的关系,如果比x大,那就输出c,否则输出x,就是要时时刻刻把握住第二条,满足第三条。

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
牛客52811839...:实习要写出来业务和产出,你这写的像流水账没人看。项目经历也没有,换个极简简历试试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务