Submission #499968

#TimeUsernameProblemLanguageResultExecution timeMemory
499968kappaAutobahn (COI21_autobahn)C++14
0 / 100
1 ms308 KiB
#include <bits/stdc++.h>

using namespace std;

struct person{
    int begin;
    int pay;
    int end;
};

int n, k, x, maxEnd, ans, val[100005], p[100005];

person d[100005];

int main(){
    cin >> n >> k >> x;

    for (int i = 0; i < n; i++)
    {
        cin >> d[i].begin >> d[i].pay >> d[i].end;

        maxEnd = max(maxEnd, d[i].end);

        d[i].begin--;
        d[i].end--;
    }

    for (int i = 0; i < maxEnd; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if(i >= d[j].begin && i <= d[j].end){
                p[i]++;
            }
        }
    }
    

    for (int i = 0; i < maxEnd; i++)
    {
        val[i] = val[i - 1];

        if(p[i] < k) continue;

        for (int j = 0; j < n; j++)
        {
            if(i > d[j].begin + d[j].pay - 1 && i >= d[j].begin && i <= d[j].end){
                //cout << "i " << i << " lim " << d[j].begin + d[j].pay - 1 << " bas " << d[j].begin << " son " << d[j].end << "\n";

                val[i]++;
            }
        }
    }

    for (int i = 0; i < maxEnd - x; i++)
    {
        ans = max(ans, val[i + x - 1] - val[i - 1]);
    }

    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...