void Perestanovka_min () { int i,j,pos1,pos2,val1,val2,tmp,n; cin>>n; int* y=new int [n]; int* x=new int [n+1]; int* inv_x=new int [n+1]; int* d=new int [n]; for(i=0; i=0 && (y[i]==i && d[i]==1) || (y[i]==0 && d[i]==-1);i--) ; if(i==-1) break; y[i]=y[i]+d[i]; pos1 = inv_x[i+1]; val1 = i+1; pos2 = pos1 + d[i]; val2 = x[pos2]; tmp = x[pos1]; x[pos1] = x[pos2]; x[pos2] = tmp; tmp = inv_x[val1]; inv_x[val1] = inv_x[val2]; inv_x[val2] = tmp; for(j=i+1;j