Cod sursa(job #2927171)

Utilizator Utucora2017Nicolae Utucora2017 Data 19 octombrie 2022 18:33:18
Problema Carnati Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
pair<int,int> a[2005];
int sol[101],maxi,maxim;
int main(){
    int n, c;
    cin>>n>>c;
    for(int i=1;i<=n;i++){
        cin>>a[i].first>>a[i].second;
    }
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++){
        int jj=1;
        int t;
        for(int k=1;k<=n;k++){
            if(a[k].second>=a[i].second&&jj==1){
                sol[jj]=a[i].second-c,t=a[k].first;
                if(sol[jj]>maxi)
                    maxi=sol[jj],maxim=a[i].second;
                jj++;
            }
            else if(a[k].second>=a[i].second){
               // cout<<sol[jj]+a[i].second-(a[k].first-t)*c<<" ";
                sol[jj]=max(sol[jj-1]+a[i].second-(a[k].first-t)*c,a[i].second-c);
                if(sol[jj]>maxi)
                    maxi=sol[jj],maxim=a[i].second;
                jj++,t=a[k].first;
            }
        }
        //cout<<sol[jj-1]<<"\n";
    }
    cout<<maxi;
}