Cod sursa(job #1371708)

Utilizator MihneaGhiraMihnea MihneaGhira Data 4 martie 2015 00:15:26
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<algorithm>
#define f first
#define s second
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
int n,i,j,x,maxim,c;
int v[2005];
pair <int,int> p[2005];
int main(){
    fin>>n>>c;
    for(i=1;i<=n;i++){
        fin>>p[i].f>>p[i].s;
    }
    sort(p+1,p+n+1);
    p[0].f=-10;
    p[0].s=-10;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            x=p[i].s;
            if(p[j].s<x)
                x=0;
            if(v[j-1]-(p[j].f-p[j-1].f)*c+x<x-c)
                v[j]=x-c;
            else
                v[j]=v[j-1]-(p[j].f-p[j-1].f)*c+x;
            if(maxim<v[j])
                maxim=v[j];
        }
    }
    fout<<maxim;
    return 0;
}