Cod sursa(job #245597)

Utilizator ConsstantinTabacu Raul Consstantin Data 18 ianuarie 2009 13:23:20
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

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

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

sir x[100000];
  
int cmp(sir a,sir b){
return a.a<b.a;}
 int main(){  
 FILE *f=fopen("heavymet.in","r");
 fscanf(f,"%d",&n);
 for(i=1;i<=n;i++)  
     {fscanf(f,"%d %d",&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;  
                 } */

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("heavymet.out","w");
fprintf(g,"%d",max1);
fclose(g);
  return 0;  
  }