Pagini recente » Cod sursa (job #1322018) | Cod sursa (job #3256742) | Cod sursa (job #1742829) | Cod sursa (job #2168280) | Cod sursa (job #651230)
Cod sursa(job #651230)
#include <fstream>
#include <cstring>
using namespace std;
const char input[]="ssm.in";
const char output[]="ssm.out";
const int nmax=50000005;
const int nmaxa=5000005;
ifstream f(input);
ofstream g(output);
int nr, i, k, a[nmaxa], n, maxim=-nmax, pozi, pozf, sum, inc, semn=1;
char s[nmax];
int main()
{
f>>n;
f.get();
f.getline(s, nmax);
int x=strlen(s);
for(i=0; i<=x; ++i)
{
if(s[i]=='-') semn=-1;
if(s[i]>='0' && s[i]<='9') nr=nr*10+s[i]-'0';
else if(s[i-1]>='0' && s[i-1]<='9')
{
a[++k]=nr*semn;
nr=0;
semn=1;
}
}
for(i=1; i<=k; ++i)
{
if(sum<0)
{
sum=a[i];
inc=i;
}
else sum+=a[i];
if(sum>maxim)
{
maxim=sum;
pozf=i;
pozi=inc;
}
}
g<<maxim<<" "<<pozi<<" "<<pozf<<"\n";
return 0;
}