fork download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main() {
  7.  
  8. // ifstream inp;
  9. // ofstream otp;
  10. // inp.open("input.txt");
  11. // otp.open("output.txt");
  12.  
  13. auto &inp = cin;
  14. auto &otp = cout;
  15.  
  16.  
  17. double k = 0, n = 0, s1 = 0, s2 = 0;
  18. vector<int> a(1000000);
  19. inp >> n;
  20.  
  21. for (int i = 0; i < n; i++) {
  22. inp >> a[i];
  23. }
  24.  
  25. // Считаем частичные суммы
  26. vector<int> s(1000000);
  27. s[0] = a[0];
  28. for (int i = 1; i < n; i++) {
  29. s[i] = s[i-1] + a[i];
  30. }
  31.  
  32. for (; k <= n; k++) {
  33. s1 = 0;
  34. s2 = 0;
  35. if (k == n) {
  36. otp << "-1";
  37. break;
  38. }
  39. else {
  40.  
  41. // for (int i = 0; i < k; i++) {
  42. // s1 += (int)a[i];
  43. // }
  44. // for (int i = k; i < n; i++) {
  45. // s2 += (int)a[i];
  46. // }
  47.  
  48. // Используем частичные суммы вместо прямого подсчета сумм
  49. s1 = s[k];
  50. s2 = s[n-1] - s[k];
  51.  
  52. if (s1 == s2) {
  53. otp << k + 1;
  54. break;
  55. }
  56. }
  57. }
  58.  
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 15240KB
stdin
4
1 2 2 1
stdout
2