我是靠谱客的博主 优秀大树,最近开发中收集的这篇文章主要介绍1614C Divan and bitwise operations,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

尺取法模板
注意 每次取出的钱不能超过ATM机剩余的余额:
s u m + a [ t ] + S > = 0 sum + a[t] + S >= 0 sum+a[t]+S>=0

typedef long long ll;
const int N = 2e5+10;
int n;
ll S, a[N];
void solve()
{
scanf("%d %lld", &n, &S);
for(int i = 1; i <= n; i++) scanf("%lld", &a[i]);
int res = 0;
ll sum = 0;
int s = 1, t = 1, l = 0, r = 0;
while(1)
{
while(t <= n && sum + a[t] + S >= 0) sum += a[t++];
//if(sum + S < 0) break;
// 
if(t - s > res) {
res = t - s;
l = s;
r = t - 1;
}
if(t >= n && s >= n) break;
sum -= a[s++];
}
if(!res) printf("-1n");
else printf("%d %dn",l,r);
}

最后

以上就是优秀大树为你收集整理的1614C Divan and bitwise operations的全部内容,希望文章能够帮你解决1614C Divan and bitwise operations所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部