Cod sursa(job #2779342)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 3 octombrie 2021 14:17:41
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

std::ifstream in("carnati.in");
std::ofstream out("carnati.out");

const int maxN = (int)2e3;

int n, c;

std::pair<int, int> client[maxN + 5];

int main() {
  in >> n >> c;
  for (int i = 1; i <= n; i++) {
    in >> client[i].first >> client[i].second;
  }
  int result = 0;
  std::sort(client + 1, client + n + 1);
  for (int i = 1; i <= n; i++) {
    int cost = client[i].second;
    std::vector<int> time(client[n].first + 1, 0);
    for (int j = 1; j <= n; j++) {
      if (client[j].second >= cost) {
        time[client[j].first] += cost;
      }
    }
    int maxSum = 0, sum = 0;
    for (int t = 0; t <= client[n].first; t++) {
      sum += time[t] - c;
      maxSum = std::max(maxSum, sum);
      if (sum < 0) {
        sum = 0;
      }
    }
    result = std::max(result, maxSum);
  }
  out << result << "\n";
  return 0;
}