на С++!! Сумма подряд идущих! Дан массив целых чисел a[1],a[2],...,a[n] и натуральные числа k и m. Укажите минимальное значение i, для которого a[i]+a[i+1]+...+a[i+k]=m (то есть сумма k+1 подряд идущих элементов массива равна m). Если такого значения нет, то выведите 0.
Входные данные
На вход программе сначала подаются значения n, k и m (m≤109, 0
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
4 1 22
9 13 10 -11
вывод
1
ответ: на информатиксе
Объяснение:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
#define ll long long
int main(){
int n,k,m;
cin>>n>>k>>m;
vector<ll>a(n);
for(vector<ll>::iterator it=a.begin();it<a.end();it++){
cin>>*it;
}
vector<int>p(n + 1);
p[0] = 0;
for (int i = 1; i <= n; ++i)
{
p[i] = p[i - 1] + a[i-1];
}
for (int i = 0; i+k+1 < (int)p.size(); ++i)
{
int res=p[i+k+1]-p[i];
if(res==m){
cout<<i+1;
return 0;
}
}
cout<<0;
}