Submission #499969

#TimeUsernameProblemLanguageResultExecution timeMemory
499969kappaAutobahn (COI21_autobahn)C++14
50 / 100
1008 ms5632 KiB
#include <bits/stdc++.h> using namespace std; struct person{ long long begin; long long pay; long long end; }; long long 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; i++) { cout << val[i] << " "; } cout << "\n"; */ for (int i = 0; i < maxEnd - x + 1; 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...