hiho week 288 register

Ended

Participants:46

Verdict:Accepted
Score:100 / 100
Submitted:2020-01-11 18:23:55

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<bits/stdc++.h>
using namespace std;
int T,N,M,ans,B[20170],bn;
map<int , int> mp;
int reverse_pairs(int x){
    int rt=0,i,j,k,l,u[9];
    for(i=0;x>0;i++){
        u[i]=x%10;
        for(j=i-1;j>=0;j--)if(u[j]<u[i])rt++;
        x/=10;
    }
    return rt;
}
int move(int x,int y){
    int rt=0,i,j,k,l,a,b,c,d,e;
    for(i=1;x>i*10;i*=10){
        a=(x/i)%(100);
        b=x%i+x/(i*100)*i;
        k=1;
        while(b*10>=k)
        {
            c=b%k+a*k+b/k*k*100;
            if(mp.find(c)==mp.end()){
                B[bn++]=c;
                mp[c]=y+1;
                if(c==M)ans=y+1;
            }
            k*=10;          
        }
    }
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX