Cod sursa(job #2819825)

Utilizator nubnubMeh Neh nubnub Data 19 decembrie 2021 10:38:06
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include<cstdio>
#include<algorithm>
int c,n,pmax;
struct client{
    int t,p;
};
client v[2000];
bool cmp(client x,client y){
    return x.t<y.t;
}
int pretmaxim(int nr){
    int i,u,pc;

    pc=-c;
    for(i=0;i<n;i++){
        u=0;
        if(v[nr].p<=v[i].p)
            u=v[nr].p;
        if(pc-(v[i].t-v[i-1].t-1)*c<0)
            pc=u-c;
        else
            pc=pc+u-(v[i].t-v[i-1].t)*c;
        if(pc>pmax) pmax=pc;
    }
    return pmax;
}
using namespace std;

int main()
{
    FILE *fin,*fout;
    int i,pc;
    fin=fopen("carnati.in","r");
    fout=fopen("carnati.out","w");
    fscanf(fin,"%d %d",&n,&c);
    for(i=0;i<n;i++){
        fscanf(fin,"%d %d",&v[i].t,&v[i].p);
    }
    sort(v,v+n,cmp);
    pmax=0;
    for(i=0;i<n;i++){
        pc=pretmaxim(i);
        //if(pc >pmax)
            //pmax=pc;
            printf("%d\n",pmax);
    }
    fprintf(fout,"%d",pc);
    return 0;
}