/*
tourist orz
dominater sir orz
paras sir orz
socho sir orz
kshitij sir orz
aryan maskara sir orz
evenvalue orz
aryan sir orz
samik sir orz
avighna sir orz
sushil sir orz
yash sir orz
archit sir orz
ola sir orz
hashman sir orz
hashman sir orz
oviyan sir orz
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
//variables and methods
#define int long long
#define endl '\n'
const int INF = 1e18;
//main method
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin>>n; //number of machines
int m;
cin>>m; //number of tasks
int q;
cin>>q; //safety values
vector<int> l(m);
vector<int> r(m);
for (int i=0; i<m; i++) {
cin>>l[i];
cin>>r[i];
}
//machine running order
vector<int> order;
for (int i=0; i<m; i++) {
int curr1 = l[i];
int curr2 = r[i];
for (int j=curr1; j<=curr2; j++) {
order.push_back(j);
}
}
vector<int> lastseen(n+1, -1);
vector<int> gaps;
for (int i=0; i<order.size(); i++) {
int machine = order[i];
if (lastseen[machine] != -1) {
int gap = i - lastseen[machine];
gaps.push_back(gap);
}
lastseen[machine] = i;
}
sort(gaps.begin(), gaps.end());
while(q--) {
int s;
cin>>s;
int pos = upper_bound(gaps.begin(), gaps.end(), s) - gaps.begin();
int inspection = gaps.size() - pos;
cout<<inspection<<" ";
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |