牛客小白月赛34霖行F-dd爱框框
Posted 霖行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客小白月赛34霖行F-dd爱框框相关的知识,希望对你有一定的参考价值。
【牛客小白月赛34】【霖行】F-dd爱框框
题目
链接:https://ac.nowcoder.com/acm/contest/11211/F 来源:牛客网
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld题目描述
读入n,x, 给出n个数a[1],a[2],……,a[n], 求最小的区间[l,r],使a[l]+a[l+1]+……+a[r]≥x ,若存在相同长度区间,输出 l 最小的那个
输入描述:
第一行两个数,n(1≤n≤10000000),x(1≤x≤10000)
第二行n个数a[i] (1≤a[i]≤1000)输出描述:
输出符合条件l,r(保证有解)
输入
10 20 1 1 6 10 9 3 3 5 3 7
输出
3 5
题目分析
求区间问题,可运用双指针表示区间的首尾。
代码
#include<iostream>
using namespace std;
int A[10000011];
int main()
{
int N; long long X;
cin >> N >> X;
for (int i = 1; i <= N; i++)
scanf("%d", &A[i]);
int l, r; l = r = 1;
long long sum = A[1];
int minl = 0, minr = N;
while (r <= N)
{
if (sum < X)
sum += A[++r];//扩大区间
else
{
if (minr - minl > r - l)//更新最小区间
{
minr = r;
minl = l;
}
sum -= A[l++];//缩小窗口
}
}
cout << minl << " " << minr << endl;
return 0;
}
以上是关于牛客小白月赛34霖行F-dd爱框框的主要内容,如果未能解决你的问题,请参考以下文章