Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <vector>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #include <unordered_set>
- #define int long long
- #define sp system("pause")
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- #define INF 1000000009
- #define pii pair<int, int>
- #define all(v) v.begin(), v.end()
- using namespace std;
- struct S
- {
- int x;
- int co;
- int id;
- };
- bool cmp(S a, S b)
- {
- if (a.x != b.x)
- {
- return a.x < b.x;
- }
- return a.co > b.co;
- }
- bool cmp1(pair<int, int> a, pair<int, int> b)
- {
- return a.second < b.second;
- }
- signed main()
- {
- int L, n, t, r, l;
- cin >> L >> n >> t;
- vector <S> vc(2 * n + t);
- vector <pair <int, int>> ans(t);
- int i;
- for (i = 0; i < 2 * n; i += 2)
- {
- cin >> r >> l;
- vc[i].x = min(r, l);
- vc[i].co = 1;
- vc[i].id = -1;
- vc[i + 1] = { max(r, l), -1, -1 };
- }
- int j = 0;
- for (; i < 2 * n + t; i++)
- {
- cin >> r;
- vc[i] = { r, 0, j };
- j++;
- }
- sort(vc.begin(), vc.end(), cmp);
- int cnt = 0;
- j = 0;
- for (i = 0; i < 2 * n + t; i++)
- {
- if (vc[i].co == 1)
- {
- cnt++;
- }
- else if (vc[i].co == 0)
- {
- ans[j].first = cnt;
- ans[j].second = vc[i].id;
- j++;
- }
- else
- {
- cnt--;
- }
- }
- sort(ans.begin(), ans.end(), cmp1);
- for (int i = 0; i < t; i++)
- {
- cout << ans[i].first << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement