Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(linker, "/STACK:65777216")
- #include <iostream>
- #include <iomanip>
- #include <cstdlib>
- #include <ctime>
- #include <cstdio>
- #include <algorithm>
- #include <cmath>
- #include <vector>
- #include <set>
- #include <stack>
- #include <map>
- #include <queue>
- #include <string>
- #include <memory.h>
- #include <iterator>
- #define mem(A,X) memset(A,X,sizeof(A))
- #define memo(A) memset(A,0,sizeof(A))
- #define forn(I,B) for (int I=1;I<=(B);I++)
- #define forg(H,V) for (int H=first[V];h;h=next[H])
- #define rep(I,B) for (int I=0;I<(B);I++)
- #define labs(X) (((X)>0)?(X):(-(X)))
- #define ropen(X) freopen(X,"r",stdin)
- #define wopen(X) freopen(X,"w",stdout)
- #define pb push_back
- #define mp make_pair
- #define all(X) (X).begin(),(X).end()
- #define sqr(X) ((X)*(X))
- using namespace std;
- typedef pair <int,int> pii;
- typedef pair <long long,long long> pll;
- typedef double ld;
- typedef long long ll;
- typedef vector<int> vi;
- const int N=111111;
- const int INF=111111111;
- const double eps=1e-9;
- const double pi=3.14159265358979;
- int n,q[N+N],s[N+N],place[N],ans,f[N],g[N+N];
- void inc(int pos){
- for(;pos<N;pos|=pos-1,++pos) ++f[pos];
- }
- void dec(int pos){
- for(;pos<N;pos|=pos-1,++pos) --f[pos];
- }
- int get(int p){
- int res=0;
- for(;p;p&=p-1) res+=f[p];
- return res;
- }
- struct pass{
- int a,b,c,id;
- bool operator < (const pass & x) const{
- return c<x.c || c==x.c && a>x.a;
- }
- } t[N];
- int main(){
- ropen("taxibus.in");
- wopen("taxibus.out");
- scanf("%d",&n);
- forn(i,n) t[i].id=i;
- forn(i,n){
- scanf("%d%d",&t[i].a,&t[i].b);
- q[t[i].a]=1;
- g[t[i].a]=i;
- g[t[i].b]=-i;
- }
- forn(i,n+n) s[i]=s[i-1]+q[i];
- forn(i,n) t[i].c=s[t[i].b]-s[t[i].a];
- sort(t+1,t+n+1);
- forn(i,n) place[t[i].id]=i;
- forn(i,n+n){
- ans+=get(place[labs(g[i])]-1);
- if (g[i]<0) dec(place[-g[i]]);
- else inc(place[g[i]]);
- }
- printf("%d\n",ans);
- forn(i,n) printf("%d ",place[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment