Cod sursa(job #1329288)

Utilizator usermeBogdan Cretu userme Data 29 ianuarie 2015 12:39:17
Problema Carnati Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <algorithm>

using namespace std;

FILE*f=fopen("carnati.in","r");
FILE*h=fopen("carnati.out","w");

struct cumparator{
    int x,y;
};

bool sert(cumparator a,cumparator b){
    return a.x<b.x;
};

cumparator v[2001];

int main(){
    int n,c;
    fscanf(f,"%d%d",&n,&c);
    for ( int i=1;i<=n;++i ){
        fscanf(f,"%d%d",&v[i].x,&v[i].y);
    }
    sort(v+1,v+n+1,sert);
    int bestvaloare=0;
    for ( int i=1;i<=n;++i ){
        int value=0,time=v[1].x;
        for ( int j=1;j<=n;++j ){
            if ( value<0 ){
                value=0;
                time=v[j].y;
            }
            if ( v[j].x>=v[i].y )
                value+=v[i].y;
            value-=(v[j].y-time+1)*c;
            time=v[j].y;
            if ( value>bestvaloare )
                bestvaloare=value;
        }
    }
    fprintf(h,"%d",bestvaloare);
    return 0;
}