Cod sursa(job #40635)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 27 martie 2007 16:24:49
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream.h>
#include<limits.h>

long n, s, l, rot;

typedef struct
{
  int a, b;
} buline;


int main()
{
  buline v[10000];
  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;
}