Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <queue>
- int main()
- {
- using std::cout;
- using std::cin;
- using std::endl;
- std::ifstream file("data.txt");
- if(!file.is_open()) {
- cout << "error openning file" << endl;
- return 1;
- }
- const int size = 5;
- unsigned array[size];
- unsigned indexOfFirst = 0;
- unsigned maxSum = 0;
- unsigned sum = 0;
- // пропускаем один элемент(где хранится количество значений)
- file >> array[0];
- for(unsigned i = 0; i < size; ++i) {
- // считываем одно значение
- unsigned value;
- file >> value;
- if(!file) {
- cout << "error" << endl;
- return 2;
- }
- cout << value << endl;
- // сохраняем в массив
- array[i] = value;
- // прибавляем к сумме
- maxSum += value;
- }
- sum = maxSum;
- cout << "maxSum = " << maxSum << endl;
- cout << endl;
- while(file) {
- unsigned value;
- file >> value;
- if(!file)
- break;
- cout << value << endl;
- // из суммы вычитаем первый и прибавляем вновь считанный
- sum = sum - array[indexOfFirst] + value;
- // если сумма стала больше, меняем
- if(sum > maxSum)
- maxSum = sum;
- // меняем первый элемент
- array[indexOfFirst] = value;
- ++indexOfFirst;
- indexOfFirst %= size; // чтоб не выходило за пределы массива
- cout << "first = " << array[indexOfFirst] << endl;
- cout << "maxSum = " << maxSum << endl;
- }
- cout << "maxSum = " << maxSum << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement