В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
VladislavAkinshin
VladislavAkinshin
08.02.2020 05:00 •  Информатика

на С++!! Сумма подряд идущих! Дан массив целых чисел 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

Показать ответ
Ответ:
sapunovegor22
sapunovegor22
07.09.2021 13:41

ответ: на информатиксе

Объяснение:

#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;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота