Mai intai trebuie sa te autentifici.
Cod sursa(job #1464868)
Utilizator | Data | 25 iulie 2015 20:48:42 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<fstream>
#define Xp 6000013
#include <cstring>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,i,st,sum,m,ms,md,poz,s,k;
char w[Xp*33];
int main()
{
f>>n;
m=(1<<31);
f.get();
f.get(w,Xp*33);
for(st=i=1;i<=n;++i)
{
if(w[poz]=='-') ++poz,k=1;
while(w[poz]>='0'&&w[poz]<='9') s=s*10+w[poz]-'0',++poz;
if(k==1) k=0,s*=-1;
if(sum+s>=s) sum+=s;
else sum=s,st=i;
if(sum>m) md=i,ms=st,m=sum;
++poz; s=0;
}
g<<m<<" "<<ms<<" "<<md;
return 0;
}