Cod sursa(job #2768108)

Utilizator DragosC1Dragos DragosC1 Data 9 august 2021 15:11:37
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
 
int n, c;
 
pair<int, int> v[2001];
int t[1501];

int maxtime;

void read() {
    int i;
    ifstream f("carnati.in");
    f >> n >> c;
    for (i = 1; i <= n; i++) {
        f >> v[i].first >> v[i].second;
        maxtime = max(maxtime, v[i].first);
    }
    f.close();
}
 
bool csort(pair<int, int> a, pair<int, int> b) {
    if (a.first < b.first)
        return 1;
    return 0;
}

int Max;

void solve() {
    int i, j, sum;
    sort(v + 1, v + n + 1, csort);
    for (i = 1; i <= n; i++) {
        for (j = 0; j <= maxtime; j++)
            t[j] = 0;
        for (j = 1; j <= n; j++)
            if (v[j].second >= v[i].second)
                t[v[j].first] += v[i].second;
        sum = 0;
        for (j = 0; j <= maxtime; j++) {
            sum += t[j] - c;
            if (sum > Max)
                Max = sum;
            if (sum < 0)
                sum = 0;
        }
    }
}
 
void output() {
    ofstream g("carnati.out");
    g << Max;
    g.close();
}
 
int main() {
    read();
    solve();
    output();
    return 0;
}