Pagini recente » Cod sursa (job #762015) | Cod sursa (job #2402737) | Cod sursa (job #1789406)
#include <fstream>
#define VECMAX 6000007
using namespace std;
int v[VECMAX], n, sol, dp[VECMAX], indice = 1;
ifstream in("ssm.in");
ofstream out("ssm.out");
void Read(){
in >> n;
for(int i = 1; i <= n; ++i)
in >> v[i];
}
void Solve(){
sol = dp[1] = v[1];
for(int i = 1; i <= n; ++i){
dp[i] = max(dp[i - 1] + v[i], v[i]);
if(sol < dp[i]){
sol = dp[i];
indice = i;
}
}
}
void Print(){
int j, auxsum, minim = n;
for(int i = 1; i <= n; ++i){
if(dp[i] == sol){
auxsum = sol;
j = indice;
while(auxsum){
auxsum -= v[j];
j--;
}
if(indice - j + 1 < minim){
indice = i;
minim = j + 1;
sol = dp[i];
}
}
}
out << sol << " " << minim << " " << indice << "\n";
}
int main(){
Read();
Solve();
Print();
return 0;
}