1 void prepare(int *x) 2 { 3 for(int i=1;i<=n;i++) data[i]=x[i]; 4 sort(data+1,data+n+1); 5 int m=unique(data+1,data+n+1)-data-1; 6 for(int i=1;i<=n;i++) x[i]=lower_bound(data+1,data+m+1,x[i])-data; 7 }
1 void prepare(int *x) 2 { 3 for(int i=1;i<=n;i++) data[i]=x[i]; 4 sort(data+1,data+n+1); 5 int m=unique(data+1,data+n+1)-data-1; 6 for(int i=1;i<=n;i++) x[i]=lower_bound(data+1,data+m+1,x[i])-data; 7 }