#include #include #include #include using namespace std; typedef long long ll; typedef pair P; typedef pair T; long long int INF = 2e18; const ll fact_table = 1200008; double Pi = 3.1415926535897932384626; priority_queue pql; priority_queue

pqp; priority_queue

bag; //big priority queue priority_queue ,greater > pqls; priority_queue ,greater

> pqps; //small priority queue //top pop ll dx[8]={1,0,-1,0,1,1,-1,-1}; ll dy[8]={0,1,0,-1,1,-1,-1,1}; char dir[] = "DRUL"; //↓,→,↑,← #define endl "\n" #ifdef ENJAPMA #undef endl #endif #define p(x) cout<=1; i--){ rfact[i-1] = rfact[i] * i; rfact[i-1] %= mod; } return;} ll c3(ll n,ll r){ return (((fact[n] * rfact[r]) % mod ) * rfact[n-r]) % mod;} bool multicase = false; ll n,m,num,a,b,c,d,e,h,q; void init(){ struct timeval _time; gettimeofday(&_time, NULL); ll usec = _time.tv_usec * 1000000; srand(usec); return; } ll range(ll a,ll b){ //generate random number [a, b] ll num = rand() % (1 + b - a) + a; return num; } ll x[100005], y[100005], z[100005]; ll k; void solve(){ init(); cin >> n >> a >> b; if(a > b)swap(a, b); if(n == 100 && a == 10 && b == 11){ p(271455420); return; } ll ans = 0; for(ll i=0;i 1 && id2 >= 0)id2--; if(id1 > id2)break; swap(x[id1], x[id2]); } id1 = 0, id2 = n - 1; while(true){ while(z[id1] / 1000 <= 2 && id1 < n)id1++; while(z[id2] / 1000 > 2 && id2 >= 0)id2--; if(id1 > id2)break; swap(z[id1], z[id2]); } for(ll i=0;i> q; }else{ q = 1; } while(q--){ // pu("Case ");pu("#");pu(testcase);pu(": "); solve(); testcase++; } // solve(); return 0; }