Submission #560012

#TimeUsernameProblemLanguageResultExecution timeMemory
560012Yazan_AlattarAutobahn (COI21_autobahn)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define F first #define S second #define pb push_back #define endl "\n" #define all(x) x.begin(), x.end() const int M = 1000007; const ll inf = 2e9; const ll mod = 1e9 + 7; const double pi = acos(-1); const double eps = 1e-6; const int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0}; const int block = 320; ll n, k, x, l[M], t[M], r[M], cnt[M], cost[M], tot[M], ans; bool vist[M]; void add(int v){ vist[v] = 1; vist[v + x - 1] = 1; return; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k >> x; for(int i = 1; i <= n; ++i){ cin >> l[i] >> t[i] >> r[i]; ++cnt[l[i]]; --cnt[r[i] + 1]; ++tot[l[i] + t[i]]; --tot[r[i] + 1]; add(l[i]); add(l[i] + t[i]); add(r[i]); add(r[i] + 1); } for(int i = 1; i <= 1000; ++i) cnt[i] += cnt[i - 1], tot[i] += tot[i - 1]; for(int i = 1; i <= 1000; ++i){ cost[i] += cost[i - 1]; if(cnt[i] >= k) cost[i] += tot[i]; } for(int i = 1; i + x - 1 <= 1000; ++i) if(vist[i]) ans = max(ans, cost[i + x - 1] - cost[i - 1]); cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...