Cod sursa(job #2076314)

Utilizator ioana_marinescuMarinescu Ioana ioana_marinescu Data 26 noiembrie 2017 13:58:10
Problema Carnati Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
const int NMAX = 2005;
const int INF = 0x7fffffff;
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");

int p[NMAX], t[NMAX], n, c;

int solve(int poz) {
    int sum=-1, sum_max=-INF, i, x=0;
    /*sum-=c;
    if(p[1]>=p[poz])
        sum+=p[poz];*/
    for(i=1; i<=n; i++) {
        if(p[i]>=p[poz])
            x=p[poz];
        else x=0;
        if(i==1)
            sum=x-c;
        else
            sum=max(x-c, sum+x-c*(t[i]-t[i-1]));
        if(sum>sum_max)
            sum_max=sum;
    }
    return sum_max;
}
int main() {
    int i, maxim=0;
    fin>>n>>c;
    for(i=1; i<=n; i++)
        fin>>t[i]>>p[i];
    for(i=1; i<=n; i++)
        maxim=max(solve(i), maxim);
    fout<<maxim<<'\n';
    return 0;
}