Cod sursa(job #245686)

Utilizator ConsstantinTabacu Raul Consstantin Data 18 ianuarie 2009 16:26:44
Problema Heavy metal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

struct sir{unsigned long long int a,b,v;};

unsigned long long int i,j,k,l,m,n,max1;

sir x[100011];
  
int cmp(sir a,sir b){
return a.a<b.a;}
 int main(){  
 FILE *f=fopen("heavymetal.in","r");
 fscanf(f,"%lld",&n);
 for(i=1;i<=n;i++)  
     {fscanf(f,"%lld %lld",&x[i].a,&x[i].b);
     x[i].v=x[i].b-x[i].a;  
     if(x[i].v>max1)  
     max1=x[i].v;}
fclose(f);
sort(x,x+n+1,cmp);
 //quick(0,n);  
/* for(i=1;i<n;i++)
 for(j=i+1;j<=n;j++)  
     if(x[i].a>x[j].a)  
         {aux=x[i];  
         x[i]=x[j];  
         x[j]=aux;  
                 } */

unsigned long long int max;
  for(i=1;i<=n;i++)  
      {max=0;
     for(j=i-1;j>=1;j--)  
          if((x[j].b<=x[i].a)&&(x[j].v>max))
              max=x[j].v;  
      x[i].v+=max;  
      if(x[i].v>max1)  
          max1=x[i].v;  
      }  
 FILE *g=fopen("heavymetal.out","w");
fprintf(g,"%lld",max1);
fclose(g);
  return 0;  
  }