Submission #863894

#TimeUsernameProblemLanguageResultExecution timeMemory
863894RifalAutobahn (COI21_autobahn)C++14
50 / 100
3 ms2864 KiB
#include <bits/stdc++.h>
#include <fstream>
//#define endl '\n'
#define mod 1000000007
#define INF 900000000

using namespace std;
//ofstream fout("intel.out");
//ifstream fin("intel.in");
const int Max = 1e4;
int cnt[Max], cnt2[Max];
struct Tri {
    int l, t, r;
};
int main()
{
    ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
    int n, k, x; cin >> n >> k >> x; Tri arr[n];
    for(int i = 0; i < n;i++) {
         cin >> arr[i].l >> arr[i].t >> arr[i].r;
         cnt[arr[i].l]++;
         cnt[arr[i].r+1]--;
    }
    for(int i = 1; i <= 1000; i++) {
        cnt[i] += cnt[i-1];
    }
    for(int i = 0; i < n; i++) {
        if(arr[i].r-arr[i].l+1 <= arr[i].t) continue;
        cnt2[arr[i].l+arr[i].t]++;
        cnt2[arr[i].r+1]--;
    }
    for(int i = 1; i <= 1000; i++) {
        cnt2[i] += cnt2[i-1];
    }
    long long ans = 0;
    for(int i = 1; i <= 1000; i++) {
        long long sum = 0;
        for(int j = i; j <= min(i+x-1,1000); j++) {
          //  cout << j << ' ';
            if(cnt[j] >= k)  { 
                
                sum += cnt2[j];
              //  cout << 'f' << j << ' ' << cnt[j] << ' ' << cnt2[j] << ' ' << sum << 'f' << endl;

        }
    }
   ///  cout << 'k' << endl;
        ans = max(ans,sum);
    }
    cout << ans;
 return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...