Pagini recente » Cod sursa (job #3209799) | Cod sursa (job #2360346) | Cod sursa (job #3147765) | Cod sursa (job #287485) | Cod sursa (job #79193)
Cod sursa(job #79193)
# include <stdio.h>
const long int MAXN=400000;
long int n,v[MAXN+1],sm,pim,pfm,count;
void citire()
{
FILE *f=fopen("buline.in","r");
fscanf(f,"%ld",&n);
long int i,aa;
for (i=1;i<=n;i++)
{
fscanf(f,"%ld%ld",&v[i],&aa);
if (!aa) v[i]*=-1;
v[n+i]=v[i];
}
fclose(f);
}
void scrie()
{
FILE *g=fopen("buline.out","w");
fprintf(g,"%ld %ld %ld\n",sm,pim,pfm);
fcloseall();
}
void calculeaza()
{
sm=v[1];pim=1;pfm=1;count=1;
long int i=1;
do
{
i++;
if (v[i-1]+v[i]>v[i])
{
v[i]=v[i-1]+v[i];
count++;
if (sm<v[i]&&count<=n)
{
sm=v[i];
pim=i-count+1;
pfm=count;
}
}
else
{
count=1;
if (sm<v[i]&&count<=n)
{
sm=v[i];
pim=i-count+1;
pfm=count;
}
}
}
while (i-count+1<=n&&i<=2*n);
}
int main()
{
citire();
calculeaza();
scrie();
return 0;
}