General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
92789040 Practice:
mr_anderson99
846C - 16 C++17 (GCC 7-32) Accepted 31 ms 4308 KB 2020-09-14 15:52:46 2020-09-14 15:52:46
→ Source
#include <bits/stdc++.h>
#include <stdio.h>
#include <algorithm>
 
using namespace std;
 
#define rep(i,a,b) for (ll i = a; i < b; i++)
#define rrep(i,a,b) for (ll i = a; i >= b; i--)
//#define l(s) s.length()
#define sort(v) sort(v.begin(), v.end());
#define scan(v,n) rep(i,0,n) {ll k; cin >> k; v.pb(k);}
#define print(v,n) {rep(i,0,n) cout << v[i] << " "; cout << endl;}
#define printstr(s,n) {rep(i,0,n) cout << s[i]; cout << endl;}
#define rev(a) reverse(a.begin(), a.end());
#define pb push_back
typedef long long ll;
typedef long double lld;
typedef vector<pair<ll,ll>> vpi;
typedef vector<ll> vi;
 
const ll mxN=3e3;
const ll N=505;
const ll INF=1e18;

ll dp[N][N], mn[N][N], sub[4];

 
void solve() {
     int n; cin >> n;
     pair<int, int> pr={-1,-1};
     vi v,suf(n),Suf(n); vpi kad(n); scan(v,n);
     //try kadane and suffix sum simultaneously
     ll yo=0, mx=0, late=n-1, temp=0;
     rrep(i,n-1,0) {
         temp+=v[i];
         if(yo<=0) {yo=0; late=i;}
         yo+=v[i];
         if(yo>mx) {pr={i,late}; mx=yo;}
         Suf[i]=temp-mx;
         kad[i]=pr;
     }
     ll ans=0, a1=n, a2=n, a3=n;
     rep(i,0,n) {
         if(Suf[i]<ans) {
             a1=i; if(kad[i].first!=-1) {a2=kad[i].first; a3=kad[i].second+1;}
             ans=Suf[i];
         }
     }
     cout << a1 << " " << a2 << " " << a3 << endl << endl;
     //print(Suf,n);
     //for(auto k:kad) cout << k.first << " " << k.second << endl;
}
 
  int main() {
      int t=1;// cin >> t;
      while(t--) solve();
	 return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details