Cod sursa(job #3261113)

Utilizator vladsoartavlad sofronea vladsoarta Data 4 decembrie 2024 16:03:10
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");

struct{
int poz,p;
}v[2020];
int c,n,client[1520],pozmax;

int check()
{
    int maxi = -1e9;
    int sum = -1e9;

    for(int i=0; i<=pozmax; i++)
    {
        if(sum < 0)
            sum=0;
        sum+=client[i];
        maxi = max(maxi,sum);
    }

    return maxi;
}

int main()
{

    int rsp=-1e9;
    cin>>n>>c;
    for(int i=1; i<=n; i++)
        cin>>v[i].poz>>v[i].p,pozmax = max(pozmax,v[i].poz);

    for(int i=1; i<=n; i++)
    {
        fill(client,client+1+pozmax,-1*c);
        for(int j=1; j<=n; j++)
            if(v[i].p <= v[j].p)
                client[v[j].poz]+=v[i].p;
        rsp = max(rsp,check());
    }

    cout<<rsp;
    return 0;
}