Решение задачи Книги с Codeforces

Без пояснения   Просмотров: 82


Когда у Валеры появляется свободное время, он идет в библиотеку и читает книги. Вот и сегодня у него появилось t свободных минут для чтения. Поэтому Валера взял n книг в библиотеке и для каждой книги оценил: какое время потребуется, чтобы ее прочитать. Пронумеруем книги целыми числами от 1 до n. Для прочтения i-той книги Валере требуется ai минут.

Валера решил, что он выберет произвольную книгу с номером i и будет читать книги друг за другом, начиная с этой книги. Другими словами, сначала он прочитает книгу c номером i, затем книгу с номером i + 1, затем книгу с номером i + 2 и так далее. Он продолжает этот процесс до тех пор, пока либо не закончится его свободное время, либо не прочитает книгу с номером n. Каждую книгу Валера читает целиком, то есть он не читает книгу, которую не успеет дочитать до конца из-за нехватки свободного времени.

Посчитайте максимальное количество книг, которое Валера сможет прочитать.

Код

#include<bits/stdc++.h>
 
using namespace std;
 
int n, t, a[100005], ans, s, sum;
 
int main(){
	cin >> n >> t;
	s = 0;
	for (int i = 0; i < n; i++){
		cin >> a[i];
		sum += a[i];
		while (sum > t && s<=i){
			sum -= a[s++];
		}
		ans = max(ans, i - s + 1);
	}
	cout << ans;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться