Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <iostream>
  4. #include <vector>
  5. #include<map>
  6. #include<set>
  7. #include <algorithm>
  8. #include<memory.h>
  9. #include <queue>
  10. #include<cstring>
  11.  
  12. using namespace std;
  13.  
  14. #define forn(i, n) for(int i=0; i<n; i++)
  15. #define rep(i, s, e) for(int i=l; i<=r; i++)
  16. #define int long long
  17. #define all(x) x.begin(), x.end()
  18. #define rall(x) x.rbegin(), x.rend()
  19. #define fs first
  20. #define sc second
  21. #define pb push_back
  22. #define mp make_pair
  23. #define sz(x) (int)x.size()
  24. #define fastio ios_base::sync_with_stdio(false), cout.tie(0), cin.tie(0)
  25.  
  26. const int INF = 1e18;
  27.  
  28.  
  29. signed main() {
  30. fastio;
  31. int n;
  32. cin >> n;
  33. vector<int> a(n);
  34. forn(i, n)cin >> a[i];
  35. int l = 0, r = n - 2;
  36. int s1 = 0, s2 = a[r];
  37. int ans = INF;
  38. int rl=-1, rr=-1;
  39. while(l<n){
  40. s1+=a[l];
  41. if(l>=r)
  42. break;
  43. if(s1>=s2+a[r]){
  44. while(l< r && s1 >= s2 + a[r]){
  45. s2+=a[r];
  46. r--;
  47. }
  48. r++;
  49. }
  50. if(ans>abs(s1-s2) && l<r){
  51. ans=abs(s1-s2);
  52. rl=l;
  53. rr=r;
  54. cout<<ans<<" "<<l<<" "<<r<<endl;
  55.  
  56. }
  57. s2+=a[r-1];
  58. if(ans>abs(s1-s2) && l<r-1) {
  59. ans = abs(s1 - s2);
  60.  
  61. rl = l;
  62. rr = r-1;
  63. cout<<ans<<" "<<l<<" "<<r<<endl;
  64.  
  65. }
  66. l++;
  67. }
  68. cout<<ans<<" "<<rl +1<<" "<<rr + 1 <<'\n';
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement