Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define endl '\n'
- #define st first
- #define nd second
- #define pb push_back
- #define db(x) cout << #x << " == " << (x) << endl
- #define dbs(x) cout << x << endl
- typedef long long ll;
- typedef vector <int> vi;
- typedef pair <int, int> pii;
- const int N = 4e5+5;
- int bit[N], l[N], r[N], ans[N];
- int n, cnt=0;
- map <int, int> cp, id;
- vi compress;
- void add(int p){
- for(; p<=cnt; p+=p&(-p)) bit[p]++;
- }
- int sum(int p){
- int ans=0;
- for(; p>=1; p-=p&(-p)) ans+=bit[p];
- return ans;
- }
- int main(){
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cin >> n;
- int a, b;
- for(int i=1; i<=n; i++){
- cin >> a >> b;
- l[i]=a, r[i]=b;
- id[a]=i;
- compress.pb(a), compress.pb(b);
- }
- sort(l+1, l+n+1);
- sort(compress.begin(), compress.end());
- for(auto v: compress) cp[v]=++cnt;
- for(int i=n; i>=1; i--){
- int idx=id[l[i]];
- a=cp[l[i]], b=cp[r[idx]];
- ans[idx]=sum(b)-sum(a-1);
- add(b);
- }
- for(int i=1; i<=n; i++) cout << ans[i] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement