Pagini recente » Cod sursa (job #760559) | Cod sursa (job #875505) | Cod sursa (job #2168067) | Cod sursa (job #372028) | Cod sursa (job #44065)
Cod sursa(job #44065)
#include<fstream.h>
#include<limits.h>
long n, s, l, rot;
typedef struct
{
long a, b;
} buline;
long suma(long x,long y)
{
long suma=0;
for (long i=x; i<=y; i++)
suma+=i;
return suma;
}
int main()
{
buline v[250000];
long smax=INT_MIN, p, i, ps, us;
ps=us=0;
ifstream in("buline.in");
in>>n;
for (i=1; i<=n; i++)
in>>v[i].a>>v[i].b;
in.close();
for (rot=1; rot<n; rot++)
{
s=0;
p=rot;
for (i=rot; i<=n; i++)
{
if (v[i].b==1)
s+=v[i].a;
else s-=v[i].a;
if (smax<s)
{
ps=p;
us=i;
smax=s;
}
}
for (i=1; i<rot; i++)
{
if (v[i].b==1)
s+=v[i].a;
else s-=v[i].a;
if (smax<s)
{
ps=p;
us=i;
smax=s;
}
}
}
ofstream out("buline.out");
if (us<ps)
{
l=(n-ps)+us+1;
}
out<<smax<<" "<<ps<<" "<<l;
out.close();
return 0;
}