Cod sursa(job #390835)

Utilizator funkydvdIancu David Traian funkydvd Data 4 februarie 2010 17:58:48
Problema Carnati Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream f1 ("carnati.in");
ofstream f2 ("carnati.out");
struct carn {int p,t;};
carn a[2005];
int compar (const void*p, const void *q)
{
	carn x=*(carn*)p, y=*(carn*)q;
	if (x.t>y.t) return 1;
	if (x.t<y.t) return -1;
	return 0;
}
int main()
{
	int i,j,n,c,old,news,max,G;
	f1>>n>>c;
	for (i=1; i<=n; i++) f1>>a[i].t>>a[i].p;
	qsort (a+1,n,sizeof(a[0]), compar);
	 for(i=1;i<=n;++i)  
      {  
      old=0;  
      for(j=1;j<=n;++j)  
        {  
   
        if(a[ j ].p>=a[ i ].p) G=a[ i ].p;  
   
        else G=0;  
   
        news=old-(a[ j ].t-a[ j-1 ].t)*c+G;  
   
        if(news<G-c) news=G-c;  
   
        if(news>max) max=news;  
          
        old=news;  
       }  
	 }
	 f2<<max;
	 return 0;
}