Cod sursa(job #2012101)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 17 august 2017 21:41:56
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <algorithm>
using namespace std;
const int nmax=2030;
int t[nmax],p[nmax],dyn[nmax];
int n,c;
int main()
{
    freopen ("carnati.in","r",stdin);
    freopen ("carnati.out","w",stdout);
    scanf("%d%d",&n,&c);
    for(int i=1;i<=n;i++) scanf("%d%d",&t[i],&p[i]);
    int sol=0;
    for(int j=1;j<=n;j++)
    {
        int mij=p[j];
        for(int i=1;i<=n;i++)
        {
            if(mij<=p[i]) dyn[t[i]]+=mij;
        }
        dyn[0]-=c;
        sol=max(sol,dyn[0]);
        for(int i=1;i<=1500;i++)
        {
            dyn[i]+=max(dyn[i-1],0);
            dyn[i]-=c;
            sol=max(sol,dyn[i]);
        }
       // if(j==1) for(int i=0;i<=20;i++) printf("%d ",dyn[i]);
        for(int i=0;i<=1500;i++) dyn[i]=0;
     //   printf("%d %d\n",p[j],sol);
    }
    printf("%d\n",sol);
}