Cod sursa(job #1725993)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 6 iulie 2016 22:05:17
Problema Carnati Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

struct om{
    int first,second;
}p[2005];

bool comp(om o1, om o2){
    if(o1.first == o2.first){
        return o1.second > o2.second;
    }
    return o1.first < o2.first;
}

int main(){
    freopen("carnati.in", "r", stdin);
    freopen("carnati.out", "w", stdout);
    int n,i,j,sum,bst,C;
    bst = 0;
    scanf("%d %d",&n,&C);
    for(i = 1;i <= n;i++){
        scanf("%d %d",&p[i].first, &p[i].second);
    }
    sort(p+1, p+n+1, comp);
    for(i = 1;i <= n;i++){
        int P = p[i].second;
        sum = 0;
        for(j = 1;j <= n;j++){
             sum -= c*(v[j].second-v[j-1].second)-(v[j].first >= P ? P : 0);
             if(sum < 0){
                sum = v[j].first >= P ? P-C : 0;
                if(sum < 0){
                    sum = 0;
                }
             }
             bst = max(bst, sum);
        }
    }
    printf("%d",bst);
    return 0;
}