Advertisement
Guest User

Untitled

a guest
Feb 5th, 2017
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <queue>
  4.  
  5.  
  6. int main()
  7. {
  8. using std::cout;
  9. using std::cin;
  10. using std::endl;
  11.  
  12. std::ifstream file("data.txt");
  13. if(!file.is_open()) {
  14. cout << "error openning file" << endl;
  15. return 1;
  16. }
  17. const int size = 5;
  18.  
  19. unsigned array[size];
  20. unsigned indexOfFirst = 0;
  21. unsigned maxSum = 0;
  22. unsigned sum = 0;
  23.  
  24. // пропускаем один элемент(где хранится количество значений)
  25. file >> array[0];
  26.  
  27.  
  28. for(unsigned i = 0; i < size; ++i) {
  29. // считываем одно значение
  30. unsigned value;
  31. file >> value;
  32. if(!file) {
  33. cout << "error" << endl;
  34. return 2;
  35. }
  36. cout << value << endl;
  37. // сохраняем в массив
  38. array[i] = value;
  39. // прибавляем к сумме
  40. maxSum += value;
  41. }
  42. sum = maxSum;
  43.  
  44. cout << "maxSum = " << maxSum << endl;
  45. cout << endl;
  46.  
  47. while(file) {
  48. unsigned value;
  49. file >> value;
  50. if(!file)
  51. break;
  52. cout << value << endl;
  53. // из суммы вычитаем первый и прибавляем вновь считанный
  54. sum = sum - array[indexOfFirst] + value;
  55. // если сумма стала больше, меняем
  56. if(sum > maxSum)
  57. maxSum = sum;
  58. // меняем первый элемент
  59. array[indexOfFirst] = value;
  60. ++indexOfFirst;
  61. indexOfFirst %= size; // чтоб не выходило за пределы массива
  62. cout << "first = " << array[indexOfFirst] << endl;
  63. cout << "maxSum = " << maxSum << endl;
  64. }
  65.  
  66. cout << "maxSum = " << maxSum << endl;
  67.  
  68.  
  69.  
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement