Cod sursa(job #2580756)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 14 martie 2020 05:29:45
Problema Carnati Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");

int n,salariu;
int fix,maxim=-2000000000,transport,suma,nr[2005];
struct om{
 int zi,cost;
}v[2005];

bool cmp(om a,om b)
 {
  return a.zi<b.zi;
 }

int main()
{
f>>n>>salariu;
for(int i=1;i<=n;i++)
 f>>v[i].zi>>v[i].cost;
sort(v+1,v+n+1,cmp);
for(int pas=1;pas<=n;pas++)
 {
  fix=v[pas].cost;
  transport=-200000000;
  for(int i=1;i<=n;i++)
   {
    nr[i]=nr[i-1];
    if(v[i].cost>=fix) nr[i]++;
   }
  for(int i=1;i<=n;i++)
   {
    if(nr[i]*fix-v[i].zi*salariu+transport>maxim) maxim=nr[i]*fix-v[i].zi*salariu+transport;
    if((v[i].zi-1)*salariu-nr[i-1]*fix>transport) transport=(v[i].zi-1)*salariu-nr[i-1]*fix;
   }
 }
g<<maxim;
}