Cod sursa(job #629142)

Utilizator xbogdanBogdan Boamfa xbogdan Data 2 noiembrie 2011 18:20:47
Problema Carnati Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
pair <int,int> v[2000];
int n,c,imax=0;
int max(int a,int b)
{
    if(a>b) return a;
    return b;
}
int profit(int pret)
{
    int i,sc=0,smax=0,prc;
    for(i=1; i<=n; i++)
    {
        if(v[i].second>=pret)
            prc=pret-c;
        else
            prc=-c;
        sc=max(sc-(v[i].first-v[i-1].first-1)*c,0)+prc;
        if(sc>smax)
            smax=sc;
    }
    return smax;

}
int main()
{
    ifstream in ("carnati.in");
    ofstream out ("carnati.out");
    int i,j;
    in>>n>>c;
    for(i=1; i<=n; i++)
        in>>v[i].first>>v[i].second;
    sort(&v[1],&v[n+1]);
    for(i=1; i<=n ;i++){
        j=profit(v[i].second);
        if(j>imax)
            imax=j;
    }
    out<<imax;
    return 0;
}