void mer(int l,int r) { if(l==r) return ; int mid=(l+r)/2 ; mer(l,mid) ; mer(mid+1,r) ; for(int i=l,j=mid+1,cnt=l;i<=mid||j<=r;) if(j==r+1 || (i!=mid+1 && fac[i]<=fac[j])) t[cnt++]=fac[i++] ; else t[cnt++]=fac[j++] ; for(int i=l;i<=r;i++) fac[i]=t[i] ; }
void mer(int l,int r) { if(l==r) return ; int mid=(l+r)/2 ; mer(l,mid) ; mer(mid+1,r) ; int cnt1=l,cnt2=mid+1 ; for(int cnt=1;cnt<=r-l+1;cnt++) { if(cnt2==r+1 || (cnt1<=mid && a[cnt1]<=a[cnt2])) {b[cnt]=a[cnt1] ; cnt1++ ; } else if(cnt1==mid+1 || (cnt2<=r && a[cnt2]<=a[cnt1])) {b[cnt]=a[cnt2] ; cnt2++ ; } } for(int i=1;i<=r-l+1;i++) a[l-1+i]=b[i] ; }
void sort(int l,int h) { int mid; if(l<h) { mid=(l+h)/2; sort(l,mid); sort(mid+1,h); mer(l,mid,h); } }
main() { int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&a[i]) ; mer(1,n) ; for(int i=1;i<=n;i++) printf("%d ",a[i]) ; printf("\n") ; } }
void mer(int l,int r) { if(l==r) return ; int mid=(l+r)/2 ; mer(l,mid) ; mer(mid+1,r) ; int cnt=l ,i=l , j=mid+1; while(i!=mid+1 || j!=r+1) { if((i==mid+1) || (j!=r+1 && a[j]<a[i])) { b[cnt]=a[j] ; ans[a[j]]+=mid+1-i ; j++ ; } else { b[cnt]=a[i] ; ans[a[i]]+=j-mid-1 ; i++ ; } cnt++ ; } for(int i=l;i<=r;i++) a[i]=b[i] ; }
main() { int n,m ; while(scanf("%d %d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); memset(ans,0,sizeof(ans)) ; mer(1,n) ; int sum=0 ; for(int i=1;i<=n;i++) sum+=ans[i] , printf("%d,",ans[i]) ; printf("\n"); while(m--) { int x; scanf("%d",&x) ; printf("%d\n",sum/2) ; sum-=2*ans[x] ; } } }
main() { int T ; scanf("%d",&T) ; while(T--) { LL x ; scanf("%lld",&x) ; cnt=0 ; printf("%lld = ",x) ; solve(x) ; mer(0,cnt-1) ; for(int i=0;i<cnt;) { int j=i ; for(;j<cnt && fac[j]==fac[i];j++) ; printf("%lld",fac[i]) ; if(j>i+1) printf("^%d",j-i) ; if(j!=cnt) printf(" * ") ; i=j ; } printf("\n") ; } }
int main(int argc, const char * argv[]) { // insert code here... std::vector<int> array={4,-1,2,7,10,6}; std::vector<std::thread> threads; Bubble bub(array); Selection sel(array); Merge mer(array); Quick qui(array); //Define threads // threads.push_back(std::thread(&Bubble::sorting,&bub)); // usleep(100); // threads.push_back(std::thread(&Selection::sorting,&sel)); // usleep(100); // threads.push_back(std::thread(&Merge::sorting,&mer)); // usleep(100); // threads.push_back(std::thread(&Quick::sorting,&qui)); // usleep(100); std::thread t_bub (std::bind(&Bubble::sorting, &bub)); usleep(100); std::thread t_sel (std::bind(&Selection::sorting, &sel)); usleep(100); std::thread t_mer (std::bind(&Merge::sorting, &mer)); usleep(100); std::thread t_qui (std::bind(&Quick::sorting, &qui)); usleep(100); // threads.push_back(t_bub); // threads.push_back(t_sel); // threads.push_back(t_mer); // threads.push_back(t_qui); // for(auto &t: threads) t.join(); t_bub.join(); t_sel.join(); t_mer.join(); t_qui.join(); return 0; }