Cod sursa(job #2651766)
Utilizator | Moise Andrei Moise_Andrei | Data | 23 septembrie 2020 15:41:25 |
---|---|---|---|
Problema | Carnati | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
pair <int, int> v[2005];
int n, k, mx;
void f(int a)
{
int s = 0;
for(int i = 1; i <= n; i ++)
{
s = max(s - (v[i].first - v[i - 1].first) * k, 0);
if(a <= v[i].second)
s += a;
mx = max(mx, s - k);
}
}
int main()
{
in >> n >> k;
for(int i = 1; i <= n; i ++)
in >> v[i].first >> v[i].second;
sort(v + 1, v + n + 1);
for(int i = 1; i <= n; i ++)
f(v[i].second);
out << mx;
return 0;
}