Cod sursa(job #2768104)

Utilizator DragosC1Dragos DragosC1 Data 9 august 2021 14:55:47
Problema Carnati Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <iostream>
using namespace std;
 
int n, c;
 
pair<int, int> v[2001];
 
void read() {
    int i;
    ifstream f("carnati.in");
    f >> n >> c;
    for (i = 1; i <= n; i++)
        f >> v[i].first >> v[i].second;
    f.close();
}
 
int Max;
 
void solve() {
    int i, sum, j, st;
    for (i = 1; i <= n; i++) {
        sum = 0;
        st = 1;
        for (j = 1; j <= n; j++) {
            if (v[j].second >= v[i].second)
                sum += v[i].second;
            if (sum - (v[j].first - v[st].first + 1) * c > Max) 
                Max = sum - (v[j].first - v[st].first + 1) * c;
            if (sum - (v[j].first - v[st].first + 1) * c < 0) {
                sum = 0;
                st = j + 1;
            }
        }
    }
}
 
void output() {
    ofstream g("carnati.out");
    g << Max;
    g.close();
}
 
int main() {
    read();
    solve();
    output();
    return 0;
}