Pagini recente » Borderou de evaluare (job #2912118) | Cod sursa (job #1416225) | Cod sursa (job #2491203) | Cod sursa (job #2491205) | Cod sursa (job #1796515)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
void citesteSir(int x[],int& n){
ifstream is("ssm.in");
is>>n;
for (int i=0;i<n;i++){
is>>x[i];
}
is.close();
}
void scrieSir(int x[],int n,int st,int dr){
ofstream os("ssm.out");
for (int i =st;i<dr;i++){
os<<x[i]<<" ";
}
os.close();
}
int calculeazaSecvSumaMaxima(int x[],int n,int& st,int& dr){
int best= x[0];
int bbest =best;
int bst,bdr;
st=dr=bst=bdr=0;
for (int i=1;i<n;i++){
if (best+x[i]>=x[i]){
dr++;
best +=x[i];
}else{
st=dr=i;
best = x[i];
}
if (best>bbest){
bbest = best;
bst = st;
bdr = dr;
}
}
st = bst+1;
dr = bdr+1;
return bbest;
}
int main(){
int n=-1;
int x[100];
citesteSir(x,n);
//scrieSir(x,n,0,n);
int st,dr;
int best = calculeazaSecvSumaMaxima(x,n,st,dr);
ofstream os("ssm.out");
os<<best<<" "<<st<<" "<<dr;
os.close();
}