QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#678054#9249. Elimination Series Once MoreGordensoulAC ✓243ms40612kbC++1428.6kb2024-10-26 13:56:172024-10-26 13:56:28

Judging History

你现在查看的是最新测评结果

  • [2024-10-26 13:56:28]
  • 评测
  • 测评结果:AC
  • 用时:243ms
  • 内存:40612kb
  • [2024-10-26 13:56:17]
  • 提交

answer

#define _CRT_SECURE_NO_WARNINGS
//#pragma GCC optimize(3, "Ofast", "inline")
#include<bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
#include<array>
#include<random>
using namespace std;
#define for1 for(int i = 1;i <= n;i++)
#define for0 for(int i = 0;i < n;i++) 
#define forj1 for(int j = 1;j <= n;j++) 
#define forj0 for(int j = 0;j < n;j++) 
#define form1 for (int j = 1; j <= m; j++)
#define form0 for (int j = 0; j < m; j++)
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define arrn int* arr = new int[n+2];arr[0] = 0,arr[n+1]=0
#define brrn int* brr = new int[n+2];brr[0] = 0,brr[n+1]=0
#define carr for1 cin >> arr[i]
#define carrn arrn;carr 
#define coarr for1 cout<<arr[i]<<" ";cout<<endl
#define yes  cout<<"Yes\n"
#define no cout<<"No\n"
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define endl '\n'
#define blank ' '
#define cn int n;cin>>n
#define cnm int n,m;cin>>n>>m
#define T() int _; cin >> _; while (_--)
#define int  long long
#define  ll long long
#define pii pair<int,int>
const int mode = 998244353;
const int mod = 1e9+7;
mt19937_64 rnd(time(0));
typedef uint64_t hash_t;
//chrono::high_resolution_clock::now().time_since_epoch().count()
int ksm(int a, int b = mode - 2)
{
    a %= mode;
    int ans = 1;
    while (b)
    {
        if (b % 2 == 1)
        {
            ans = ans * a % mode; b--;
        }
        a = a * a % mode;
        b >>= 1;
    }
    return ans;
}
int gcd(int a, int b)
{
    if (b == 0)return a;
    return gcd(b, a % b);
}
long long lcm(long long a, long long b)
{
    return (a * b) / gcd(a, b);
}
//const int mod = 1000002361;
bool ccmp(string x, string y)
{
    return x.size() > y.size();
}
long long qpow(int a, int b)
{
    a% mod;
    if (b == 0)return 1ll;
    int ret = 1ll;
    while (b)
    {
        if (b % 2)ret = (ret * a)%mod ;
        b >>= 1;
        a = (a * a)%mod ;
    }
    return ret%mod ;
}
    
int one(int n)//计算二进制下1的个数
{
    if (n == 0)return 0;
    if (n == 1)return 1;
    int ret = 0;
    for (int i = 0; i < 63; i++)
    {
        int w = n / (1ll << (i + 1));
        ret = (ret + (w * (1ll << i))) % mode;
        int yu = n % (1ll << (i + 1));
        if (yu >= 1ll << i)
        {
            ret = (ret + (yu - (1ll << i) + 1)) % mode;
        }
    }

    return ret % mode;
}
bool isspire(int n)
{
    if (n <= 1)return false;
    if (n == 2)return true;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)return false;
    }
    return true;
}
int n, k;
int z;
int mp[4048580];
int ans[4048580];
int tem[4048580];
void mergesort(int* nums, int l, int r,int now)
{
    //long long ret = 0;
    if (l >= r)
        return ;
    int mid = (l + r) >> 1;
    mergesort(nums, l, mid,now-1);
    mergesort(nums, mid + 1, r,now-1);
    int cur1 = l, cur2 = mid + 1, i = l;
    while (cur1 <= mid && cur2 <= r)
    {
        if (nums[cur1] <= nums[cur2])
        {
            if (nums[cur1] >= (1 << now) && (r - i) <= k)ans[nums[cur1]] = max(ans[nums[cur1]], now);
            tem[i++] = nums[cur1++];
        }
        else {
            if (nums[cur2] >= (1 << now) && (r - i) <= k)ans[nums[cur2]] = max(ans[nums[cur2]], now);
            tem[i++] = nums[cur2++];
        }
    }
    while (cur1 <= mid) { if (nums[cur1] >= (1 << now) && (r-i) <= k)ans[nums[cur1]] = max(ans[nums[cur1]], now); tem[i++] = nums[cur1++]; }
    while (cur2 <= r) { if (nums[cur2] >= (1 << now) && (r-i) <= k)ans[nums[cur2]] = max(ans[nums[cur2]], now); tem[i++] = nums[cur2++]; }
    for (int i = l; i <= r; i++)
        nums[i] = tem[i];
}
signed main()
{
    IOS;
    // precalc();
    //int mod = 1e13;
    //cout << (1 << 20);
    cin >> n >> k;
    z = n;
    n = 1 << n;
    carrn;
    for1 mp[i] = arr[i];
    mergesort(arr, 1, n, z);
    for1 cout << ans[mp[i]] << " ";
    cout << endl;
}
//int arr[1000001];
//int sm[4000004];
//int mx[4000004];
//int mxcnt[4000004];
//int semx[4000004];
////int semxcnt[400004];
//int ad1[4000004];
//int ad2[4000004];
//int ad3[4000004];
//int ad4[4000004];
//int hismx[4000004];
//void up(int i)
//{
//    int z = i << 1;
//    int y = i << 1 | 1;
//    sm[i] = sm[z] + sm[y];
//    hismx[i] = max({hismx[z], hismx[y]});
//    if (mx[z] > mx[y])
//    {
//        mx[i] = mx[z];
//        mxcnt[i] = mxcnt[z];
//        semx[i] = max(mx[y], semx[z]);
//    }
//    else if (mx[z] < mx[y])
//    {
//        mx[i] = mx[y];
//        mxcnt[i] = mxcnt[y];
//        semx[i] = max(mx[z], semx[y]);
//    }
//    else
//    {
//        mx[i] = mx[z];
//        mxcnt[i] = mxcnt[z] + mxcnt[y];
//        semx[i] = max(semx[z], semx[y]);
//    }
//}
//void build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm[i] = arr[l];
//        mx[i] = arr[l];
//        mxcnt[i] = 1;
//        semx[i] = -1e18;
//       // semxcnt[i] = 1;
//        ad1[i] = 0;
//        ad2[i] = 0;
//        ad3[i] = 0;
//        ad4[i] = 0;
//        hismx[i] = arr[l];
//        return;
//    }
//    int mid = (l + r) >> 1;
//    build(l, mid, i << 1);
//    build(mid + 1, r, i << 1 | 1);
//    up(i);
//    ad1[i] = 0;
//    ad2[i] = 0;
//    ad3[i] = 0;
//    ad4[i] = 0;
//}
//
//void lazy(int i, int n,int v1,int v2,int v3,int v4)
//{   
//    hismx[i] = max({ mx[i] + v3, hismx[i]});
//    ad3[i] = max(ad1[i]+v3,ad3[i]);
//    ad4[i] = max(ad2[i] + v4, ad4[i]);
//    sm[i] += v1 * mxcnt[i];
//    sm[i] += v2 * (n-mxcnt[i]);
//    mx[i] += v1;
//    semx[i] += (semx[i] == -1e18) ? 0 : v2;
//    ad1[i] += v1;
//    ad2[i] += v2;
//}
//void down(int i, int z, int y)
//{
//    int l = i << 1;
//    int r = i << 1 | 1;
//    int t = max(mx[l], mx[r]);
//    if(mx[l]>=mx[r])
//    lazy(l, z, ad1[i], ad2[i],ad3[i],ad4[i]);
//    else
//        lazy(l, z, ad2[i], ad2[i],ad4[i],ad4[i]);
//    if (mx[r]==t)
//    lazy(r, y, ad1[i], ad2[i],ad3[i],ad4[i]);
//    else
//        lazy(r, y, ad2[i], ad2[i],ad4[i],ad4[i]);
//    ad1[i] = 0;
//    ad2[i] = 0;
//    ad3[i] = 0;
//    ad4[i] = 0;
//}
//
//array<int, 3> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return { sm[i],mx[i],hismx[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    array<int, 3>ans = { 0,(int)-1e18,(int)-1e18 };
//    if (jl <= mid)
//    {
//        array<int, 3>a = que(jl, jr, l, mid, i << 1);
//        ans[0] += a[0];
//        ans[1] = max(ans[1], a[1]);
//        ans[2] = max(ans[2], a[2]);
//    }
//    if (mid + 1 <= jr)
//    {
//        array<int, 3>a = que(jl, jr, mid + 1, r, i << 1 | 1);
//        ans[0] += a[0];
//        ans[1] = max(ans[1], a[1]);
//        ans[2] = max(ans[2], a[2]);
//    }
//    
//    return ans;
//
//}
//void update(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (jv >= mx[i])return;
//    if (l >= jl && r <= jr&&jv>semx[i])
//    {
//
//        lazy(i, r - l + 1, jv - mx[i], 0ll, jv - mx[i], 0ll);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//   
//}
//void _add(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        lazy(i, r - l + 1, jv, jv, jv, jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _add(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _add(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//   
//}


//int mul(int a, int b) {
//    return (int)((1ll * a * b) % mod);
//}
//int binpow(int a, int pw) {
//    int b = 1;
//    while (pw) {
//        if (pw & 1)
//            b = mul(b, a);
//        a = mul(a, a);
//        pw >>= 1;
//    }
//    return b;
//}
//int inv(int a) {
//    return binpow(a, mod - 2);
//}
//const int N = 1000001;
//int ff[N], rr[N];
//void precalc() {
//    ff[0] = 1;
//    for (int i = 1; i < N; i++)
//        ff[i] = mul(ff[i - 1], i);
//    rr[N - 1] = inv(ff[N - 1]);
//    for (int i = N - 2; i > -1; i--)
//        rr[i] = mul(rr[i + 1], i + 1);
//}
//int C(int n, int k) {
//    if (n < 0 || k < 0 || n < k)
//        return 0;
//    return mul(ff[n], mul(rr[k], rr[n - k]));
//}
//
//int add(int a, int b) {
//    if (a + b >= mod)
//        return a + b - mod;
//    return a + b;
//}
//int arr[100001];
//int mn[400004];
//int mx[400004];
//int sm[400004];
//int laz[400004];
//int change[400004];
//bool vis[400004];
//array<int, 3> build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm[i] = arr[l];
//        mx[i] = arr[l];
//        mn[i] = arr[l];
//        laz[i] = 0;
//        return{ sm[i],mx[i],mn[i] };
//    }
//    int mid = (l + r) >> 1;
//    array<int, 3> a = build(l, mid, i << 1);
//    array<int, 3> b = build(mid + 1, r, i << 1 | 1);
//    sm[i] = a[0] + b[0];
//    mx[i] = max(a[1], b[1]);
//    mn[i] = min(a[2], b[2]);
//    laz[i] = 0;
//    return { sm[i],mx[i],mn[i] };
//}
//void lazy(int i, int n, int v)
//{
//    if (vis[i])
//    {
//        sm[i] = n * change[i];
//        mx[i] = change[i];
//        mn[i] = change[i];
//        laz[i] = change[i];
//    }
//    if (v != 0) {
//        sm[i] += n * v;
//        mx[i] += v;
//        mn[i] += v;
//        laz[i] += v;
//    }
//}
//void down(int i, int z, int y)
//{
//    if (laz[i] != 0 || vis[i])
//    {
//        lazy(i << 1, z, laz[i]);
//        lazy(i << 1 | 1, y, laz[i]);
//    }
//    laz[i] = 0; vis[i] = false;
//}
//void up(int i)
//{
//    sm[i] = sm[i << 1] + sm[i << 1 | 1];
//    mx[i] = max(mx[i << 1], mx[i << 1 | 1]);
//    mn[i] = min(mn[i << 1], mn[i << 1 | 1]);
//}
//array<int, 3> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return{ sm[i],mx[i],mn[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    array<int, 3>ans = { 0,-1e18,1e18 };
//    if (jl <= mid)
//    {
//        array<int, 3>a = que(jl, jr, l, mid, i << 1);
//        ans[0] += a[0];
//        ans[1] = max(a[1], ans[1]);
//        ans[2] = min(a[2], ans[2]);
//    }
//    if (jr >= mid + 1)
//    {
//        array<int, 3>a = que(jl, jr, mid + 1, r, i << 1 | 1);
//        ans[0] += a[0];
//        ans[1] = max(a[1], ans[1]);
//        ans[2] = min(a[2], ans[2]);
//    }
//    return ans;
//}
//void _add(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        lazy(i, r - l + 1, jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _add(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _add(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//}void update(int jl, int jr, int jv, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        change[i] = jv;
//        vis[i] = true;
//        laz[i] = 0;
//        lazy(i, r - l + 1, laz[i]);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i);
//    }
//}
//int mul(int a, int b) {
//        return (int)((1ll * a * b) % mod);
//    }
//    int binpow(int a, int pw) {
//        int b = 1;
//        while (pw) {
//            if (pw & 1)
//                b = mul(b, a);
//            a = mul(a, a);
//            pw >>= 1;
//        }
//        return b;
//    }
//    int inv(int a) {
//        return binpow(a, mod - 2);
//    }
//    const int N = 100001;
//    int ff[N], rr[N];
//    void precalc() {
//        ff[0] = 1;
//        for (int i = 1; i < N; i++)
//            ff[i] = mul(ff[i - 1], i);
//        rr[N - 1] = inv(ff[N - 1]);
//        for (int i = N - 2; i > -1; i--)
//            rr[i] = mul(rr[i + 1], i + 1);
//    }
//    int C(int n, int k) {
//        if (n < 0 || k < 0 || n < k)
//            return 0;
//        return mul(ff[n], mul(rr[k], rr[n - k]));
//    }
//    
//    int add(int a, int b) {
//        if (a + b >= mod)
//            return a + b - mod;
//        return a + b;
//    }
//namespace string_hash
//{#define LL long long
//    const int N = 1e6 + 20;
//    const int mod1 = 998244353;
//    const int mod2 = 1e9 + 7;
//    const int P = 1000007;
//    LL p1[N], p2[N];
//    // 双模数初始化
//    void mod_init()
//    {
//        p1[0] = p2[0] = 1;
//        for (int i = 1; i < N; i++)
//        {
//            p1[i] = p1[i - 1] * P % mod1;
//            p2[i] = p2[i - 1] * P % mod2;
//        }
//    }
//    struct Hash_String
//    {
//        string str;
//        int string_size;
//        vector<LL> h1, h2;
//        Hash_String(string s) : str(s), h1(s.size() + 1), h2(s.size() + 1)
//        {
//            str = ' ' + str;
//            string_size = str.size() - 1;
//            for (int i = 1; i < str.size(); i++)
//            {
//                h1[i] = (h1[i - 1] * P + str[i]) % mod1;
//                h2[i] = (h2[i - 1] * P + str[i]) % mod2;
//            }
//        }
//        pair<LL, LL> get(int l, int r)
//        {
//            if (l > r)
//                return { 0, 0 };
//            // assert(l <= r && l >= 1 && r <= string_size);
//            LL res1 = ((h1[r] - h1[l - 1] * p1[r - l + 1] % mod1) % mod1 + mod1) % mod1;
//            LL res2 = ((h2[r] - h2[l - 1] * p2[r - l + 1] % mod2) % mod2 + mod2) % mod2;
//            return { res1, res2 };
//        }
//        ll oneget(int l, int r) // 用于没办法用pair,只能用一个整数,但是单hash又会错的情况
//        {
//            if (l > r)
//                return 0;
//            LL res1 = ((h1[r] - h1[l - 1] * p1[r - l + 1] % mod1) % mod1 + mod1) % mod1;
//            LL res2 = ((h2[r] - h2[l - 1] * p2[r - l + 1] % mod2) % mod2 + mod2) % mod2;
//            return (res1 + P * res2);
//        }
//        pair<LL, LL> get_substring(int l1, int r1, int l2, int r2)
//        {
//            auto [v1, v2] = get(l1, r1);
//            auto [vv1, vv2] = get(l2, r2);
//            return make_pair((v1 * p1[r2 - l2 + 1] % mod1 + vv1) % mod1, (v2 * p2[r2 - l2 + 1] % mod2 + vv2) % mod2);
//            // get_hash(l1, r1) * p[r2 - l2 + 1] + get_hash(l2, r2)
//        }
//    };
//};
//using namespace string_hash;
// int arr[100001];
//int sm1[400004];
//int sm0[400004];
//int mx1[400004];
//int mx0[400004];
//int pre1[4000004];
//int suf1[4000004];
//int pre0[4000004];
//int suf0[4000004];
//bool revers[400004];
//int change[400004];
//bool vis[400004];
//void up(int i, int l, int r)
//{
//    int mid = (l + r) >> 1;
//    sm1[i] = sm1[i << 1] + sm1[i << 1 | 1];
//    sm0[i] = sm0[i << 1] + sm0[i << 1 | 1];
//    mx1[i] = max({ mx1[i << 1],mx1[i << 1 | 1] ,suf1[i << 1] + pre1[i << 1 | 1] });
//    mx0[i] = max({ mx0[i << 1], mx0[i << 1 | 1] ,suf0[i << 1] + pre0[i << 1 | 1] });
//    if (pre1[i << 1] == mid - l + 1)
//        pre1[i] = pre1[i << 1] + pre1[i << 1 | 1];
//    else pre1[i] = pre1[i << 1];
//    if (pre0[i << 1] == mid - l + 1)
//        pre0[i] = pre0[i << 1] + pre0[i << 1 | 1];
//    else pre0[i] = pre0[i << 1];
//    if (suf1[i << 1 | 1] == r - mid)
//        suf1[i] = suf1[i << 1 | 1] + suf1[i << 1];
//    else suf1[i] = suf1[i << 1 | 1];
//    if (suf0[i << 1 | 1] == r - mid)
//        suf0[i] = suf0[i << 1 | 1] + suf0[i << 1];
//    else suf0[i] = suf0[i << 1 | 1];
//}
//void build(int l, int r, int i)
//{
//    if (l == r)
//    {
//        sm1[i] = arr[l];
//        sm0[i] = 1-arr[l];
//        mx1[i] = sm1[i];
//        mx0[i] = sm0[i];
//        pre1[i] = sm1[i];
//        pre0[i] = sm0[i];
//        suf1[i] = sm1[i];
//        suf0[i] = sm0[i];
//        vis[i] = false;
//        revers[i] = false;
//        change[i] = 0;
//        //return{ sm1[i],sm0[i],mx1[i],mx0[i],pre1[i],pre0[i],suf1[i],suf0[i] };
//        return;
//    }
//    int mid = (l + r) >> 1;
//    build(l, mid, i << 1);
//    build(mid + 1, r, i << 1 | 1);
//    up(i, l, r);
//    vis[i] = false;
//    revers[i] = false;
//    change[i] = 0;
//    //return{ sm1[i],sm0[i],mx1[i],mx0[i],pre1[i],pre0[i],suf1[i],suf0[i] };
//}
//void ulazy(int i, int n,int v)
//{
//        if (v == 1) {
//            sm1[i] = n;
//            sm0[i] = 0;
//            mx1[i] = n;
//            mx0[i] = 0;
//            pre1[i] = n;
//            pre0[i] = 0;
//            suf1[i] = n;
//            suf0[i] = 0;
//        }
//        else
//        {
//            sm1[i] = 0;
//            sm0[i] = n;
//            mx1[i] = 0;
//            mx0[i] = n;
//            pre1[i] = 0;
//            pre0[i] = n;
//            suf1[i] = 0;
//            suf0[i] = n;
//        }
//        change[i] = v;
//        vis[i] = true;
//        revers[i] = false;
//}
//void rlazy(int i, int n)
//{
//        swap(sm1[i], sm0[i]);
//        swap(mx1[i], mx0[i]);
//        swap(pre1[i], pre0[i]);
//        swap(suf1[i], suf0[i]);
//        revers[i] = !revers[i];
//}
//void down(int i, int z, int y)
//{
//    if (vis[i])
//    {
//        ulazy(i << 1, z,change[i]);
//        ulazy(i << 1 | 1, y,change[i]);
//        vis[i] = false;
//    }
//    if (revers[i])
//    {
//        rlazy(i << 1, z);
//        rlazy(i << 1 | 1, y);
//        revers[i] = false;
//    }
//}
//int ques(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return sm1[i];
//    }
//    int mid = (l + r) >> 1;
//    int ans = 0;
//    down(i, mid - l + 1, r - mid);
//    //array<int, 4>ans = { 0,-1e18,0,0 };
//    if (jl <= mid)
//    {
//        ans+= ques(jl, jr, l, mid, i << 1);
//
//    }
//    if (mid + 1 <= jr)
//    {
//        ans+=  ques(jl, jr, mid + 1, r, i << 1 | 1);
//
//    }
//    return ans;
//
//}
//array<int, 4> que(int jl, int jr, int l, int r, int i)
//{
//    if (jl <= l && r <= jr)
//    {
//        return{ sm1[i],mx1[i],pre1[i],suf1[i] };
//    }
//    int mid = (l + r) >> 1;
//    down(i, mid - l + 1, r - mid);
//    //array<int, 4>ans = { 0,-1e18,0,0 };
//    if (jr <= mid)
//    {
//       return que(jl, jr, l, mid, i << 1);
//        
//    }
//    if ( mid + 1<=jl)
//    {
//       return  que(jl, jr, mid + 1, r, i << 1 | 1);
//       
//    }
//    array<int, 4>a = que(jl, jr, l, mid, i<<1);
//    array<int, 4>b = que(jl, jr, mid + 1, r, i<<1|1);
//    int z = 0, zz = 0;
//    if (a[2] == mid - max(jl,l) + 1)z = a[2] + b[2];
//    else z = a[2];
//    if (b[3] == min(jr,r) - mid)zz = b[3] + a[3];
//    else zz = b[3];
//    return{ a[0] + b[0],max({a[1],b[1],a[3] + b[2]}),z,zz };
//    
//}
//void _reverse(int jl, int jr, int l, int r, int i)
//{
//    if (l >= jl && r <= jr)
//    {
//        rlazy(i, r - l + 1);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            _reverse(jl, jr, l, mid, i << 1);
//        if (jr >= mid + 1)
//            _reverse(jl, jr, mid + 1, r, i << 1 | 1);
//        up(i,l,r);
//    }
//}void update(int jl, int jr, int jv, int l, int r, int i)   
//{
//    if (l >= jl && r <= jr)
//    {
//       
//        ulazy(i, r - l + 1,jv);
//    }
//    else
//    {
//        int mid = (l + r) >> 1;
//        down(i, mid - l + 1, r - mid);
//        if (jl <= mid)
//            update(jl, jr, jv, l, mid, i << 1);
//        if (jr >= mid + 1)
//            update(jl, jr, jv, mid + 1, r, i << 1 | 1);
//        up(i,l,r);
//    }
//}
//const int NN = 2049;
//int tree1[NN][NN];
//int tree2[NN][NN];
//int tree3[NN][NN];
//int tree4[NN][NN];
//int n, m;
//int lowbit(int i)
//{
//    return(i & -i);
//}
//void add1(int x, int y, int v)
//{
//    int v1 = v;
//    int v2 = v * x;
//    int v3 = v * y;
//    int v4 = x * y * v;
//    for (int i = x; i <= n; i += (lowbit(i)))
//    {
//        for (int j = y; j <= m; j += lowbit(j))
//        {
//            tree1[i][j] += v1;
//            tree2[i][j] += v2;
//            tree3[i][j] += v3;
//            tree4[i][j] += v4;
//        }
//    }
//}
//void add1(int a, int b, int c, int d,int v)
//{
//    add1(a, b, v);
//    add1(c+1, b, -v);
//    add1(a, d+1, -v);
//    add1(c+1, d+1, v);
//}
//int query1(int x, int y)
//{
//    int ans = 0;
//    for (int i = x; i > 0; i -= lowbit(i))
//    {
//        for (int j = y; j > 0; j -= lowbit(j))
//        {
//            ans += ((x+1)*(y+1)*tree1[i][j]);
//            ans -= ((y+1)*tree2[i][j]);
//            ans -= ((x+1)*tree3[i][j]);
//            ans += tree4[i][j];
//        }
//    }
//    return ans;
//}
//int query(int a, int b, int c, int d)
//{
//    return query1(a-1, b-1) + query1(c, d) - query1(a - 1, d) - query1(c, b - 1);
//}
/*   int tree1[114514];
   int tree2[114514];
   int n;
   void add1(int* tree,int i, int v)
   {
       while (i <= n)
       {
           tree[i] += v;
           i += (i & -i);
       }
   }
   void add12(int l, int r, int v)
   {
       add1(tree1,l, v);
       add1(tree1,r+1, -v);
       add1(tree2,l, (l - 1) * v);
       add1(tree2,r+1, -(r * v));
   }
   int query1(int * tree,int i)
   {
       int ans = 0;
       while (i)
       {
           ans += tree[i];
           i -= (i & -i);
       }
       return ans;
   }
   int query(int l,int r)
   {
       return r * query1(tree1, r) - query1(tree2, r) - (l - 1) * query1(tree1, l - 1) + query1(tree2, l - 1);
   }*/
/* auto adj = [&]() {//set维护中位数板子
    if (ma.size() >= mi.size() + 3)
    {
        auto a = ma.begin();
        suma += *a;
        sumb -= *a;
        mi.insert(*a);
        ma.erase(a);
    }
    if (ma.size() > mi.size())return;
    auto a = --mi.end();
    suma -= *a;
    sumb += *a;
    ma.insert(*a);
    mi.erase(a);
};*/
//    int wwr[1001];
//int find(int x)
//{
//    if (x != wwr[x])
//    {
//        int w = find(wwr[x]);
//        wwr[x] = w;
//        return w;
//    }
//    else
//    {
//        return x;
//    }
//}
//void wbwb(int a, int b)
//{
//    int fa = find(a);
//    int fb = find(b);
//    if (fa != fb)
//    {
//        wwr[fa] = fb;
//       // cnt[fb] += cnt[fa];
//    }
//}
    //int prime[1000010] = { 0 };//质数
    //int minp[1000010] = { 0 };//最小质因子
    //void olshai(int n)
    //{
    //    int cnt = 0;
    //    for (int i = 2; i <= n; i++)
    //    {
    //        if (minp[i] == 0) { minp[i] = i; prime[++cnt] = i; }
    //        for (int j = 1; j <= cnt; j++) { if (prime[j] > minp[i] || prime[j] > n / i) break; minp[i * prime[j]] = prime[j]; }
    //    }
    //
    //}
  /*  auto dij = [&](int s, int d[], bool vis[]) {
        priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;
        for (int i = 0; i <= 1 * n; i++)
            d[i] = 1e18, vis[i] = 0;
        d[s] = 0;
        q.push({ 0,s });
        while (q.size()) {
            auto t = q.top();
            q.pop();
            int u = t.second;
            if (vis[u]) continue;
            vis[u] = true;
            for (auto ed : arr[u]) {
                int v = ed.first, w = ed.second;
                if (d[v] > d[u] + w) {
                    d[v] = d[u] + w;
                    q.push({ d[v],v });
                }
            }
        }
    };*/
    //int mergesort(vector<int>& nums, int l, int r)
    //{
    //    long long ret = 0;
    //    if (l >= r)
    //        return 0;
    //    int mid = (l + r) >> 1;
    //    ret = (ret + mergesort(nums, l, mid)) % mod;
    //    ret = (ret + mergesort(nums, mid + 1, r)) % mod;
    //    int cur1 = l, cur2 = mid + 1, i = l;
    //    while (cur1 <= mid && cur2 <= r)
    //    {
    //        if (nums[cur1] <= nums[cur2])
    //        {
    //            tem[i++] = nums[cur1++];
    //        }
    //        else {
    //
    //            ret = ((ret + mid) % mod - cur1 + 1) % mod;
    //            tem[i++] = nums[cur2++];
    //
    //        }
    //    }
    //    while (cur1 <= mid)tem[i++] = nums[cur1++];
    //    while (cur2 <= r)tem[i++] = nums[cur2++];
    //    for (int i = l; i <= r; i++)
    //        nums[i] = tem[i];
    //    return ret % mod;
    //}
    //int InversePairs(vector<int>& nums) {
    //    tem.resize(nums.size());
    //    return mergesort(nums, 0, nums.size() - 1) % mod;
    //}
    //多重背包模板
    // int n, m;
    //int a[101];
    //int b[101];
    //int c[101];
    //int dp[40000 + 1];
    //int que[50000 + 100000 + 1]; cin >> n >> m;
    //for1
    //{
    //    cin >> a[i] >> b[i] >> c[i];
    //}
    //
    //for1
    //{
    //
    //
    //for (int md = 0; md <= min(m , b[i] - 1); md++)
    //{
    //    int l = 0, r = 0;
    //
    //    for (int j = m - md,k = 0; j >= 0 && k <= c[i]; j -= b[i],k++)
    //    {
    //        while (l < r && dp[que[r - 1]] <= dp[j] + a[i] * ((que[r - 1] - j) / b[i]))
    //        {
    //            r--;
    //        }
    //        que[r++] = j;
    //
    //    }
    //    for (int j = m - md; j >= 0; j -= b[i])
    //    {
    //
    //        dp[j] = dp[que[l]] + a[i] * ((j - que[l]) / b[i]);  
    //        if (j == que[l])l++;
    //        int wwr = j - b[i] * (c[i] + 1);
    //        if (wwr >= 0)
    //        { 
    //            while (l < r && dp[que[r - 1]] <= dp[wwr] + a[i] * ((que[r - 1] - wwr) / b[i]))
    //                r--;
    //            que[r++] = wwr;
    //        }
    //    }
    //}
    //
    //}
    //cout << dp[m] << endl;..
    //  vector :c.assign(beg, end)	将另外一个容器[x.begin(), x.end()) 里的内容拷贝到c中
    //vector<int>::iterator it;
    // 相当于声明了一个迭代器类型的变量it
    //less<int> 表示数字大的优先级大,堆顶为最大的数字
    //greater<int>表示数字小的优先级大,堆顶为最小的数字,优先队列比较要写结构体cmp
    //mp.lower_bound()	返回一个迭代器,指向键值 >= key的第一个元素
    //mp.upper_bound()	返回一个迭代器,指向键值 > key的第一个元素             for(auto [x, y] : mp)
    //getline(cin, s)会获取前一个输入的换行符,需要在前面添加读取换行符的语句。如:getchar() 或 cin.get()
    //tolower(s[i])	转换为小写
    //toupper(s[i])	转换为大写
    //transform(s.begin(), s.end(), s.begin(), ::tolower);//转换小写
    //transform(s.begin(), s.end(), s.begin(), ::toupper);//转换大写 find返回-1是找不到
    //bitset<n> a(s)	a是string对象s中含有的位串的副本
    //bitset<n> a(s, pos, n)	a是s中从位置pos开始的n个位的副本 bitset可以进行位操作可以通过 [] 访问元素 
    //b.count()	b中为1的个数
    //fill(a.begin(), a.end(), x)填充
    //tuple获取对应元素的值通过get<n>(tuple)方法获取, n必须为数字不能是变量
    //tie可以让tuple变量中的三个值依次赋到tie中的三个变量中tie(one, two, three) = t;
    //accumulate(beg, end, init)作用:对一个序列的元素求和init为对序列元素求和的初始值返回值类型:与init 相同
    //atoi(const char*)将字符串转换为int类型int a = atoi(s.c_str());
    //is_sorted(beg, end) 判断序列是否有序(升序),返回bool值
    //iota(beg, end,初始值)让序列递增赋值如 把数组赋值为:0 1 2 3 4 5
    //max_element+min_element找最大最小值
    ////找到a,b,c,d的最大值和最小值
    //mx = max({ a, b, c, d });
    //mn = min({ a, b, c, d });
    //nth_element(beg, nth, end)复杂度: 平均O(N)O(N)寻找第序列第n小的值
    //shuffle(b.begin(), b.end()); 随机打乱序列的顺序
    //reverse(beg, end)对序列进行翻转
    //stable_sort区别在于stable_sort()能够保证相等元素的相对位置,排序时不会改变相等元素的相对位置
    //unique(beg, end)消除重复元素,返回消除完重复元素的下一个位置的地址
    // 消除重复元素一般需要原序列是有序序列 unique 之后 a 数组为 { 1, 2, 3, 6, 3 }前面为无重复元素的数组,后面则是重复元素移到后面,返回a[4]
    //int len = unique(b, b + n) - b;//消除 b 的重复元素,并获取长度

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 5684kb

input:

2 1
1 2 3 4

output:

0 1 1 2 

result:

ok 4 number(s): "0 1 1 2"

Test #2:

score: 0
Accepted
time: 0ms
memory: 5664kb

input:

3 5
2 4 7 5 3 8 6 1

output:

1 2 2 2 1 3 2 0 

result:

ok 8 numbers

Test #3:

score: 0
Accepted
time: 1ms
memory: 5804kb

input:

3 0
1 2 7 4 5 8 3 6

output:

0 1 2 0 0 3 0 1 

result:

ok 8 numbers

Test #4:

score: 0
Accepted
time: 1ms
memory: 5668kb

input:

3 5
3 7 1 2 4 8 5 6

output:

1 2 0 1 2 3 2 2 

result:

ok 8 numbers

Test #5:

score: 0
Accepted
time: 1ms
memory: 5664kb

input:

3 3
3 4 8 2 7 6 1 5

output:

1 2 3 1 2 2 0 2 

result:

ok 8 numbers

Test #6:

score: 0
Accepted
time: 1ms
memory: 5776kb

input:

3 3
4 2 6 8 3 5 1 7

output:

2 1 2 3 1 2 0 2 

result:

ok 8 numbers

Test #7:

score: 0
Accepted
time: 1ms
memory: 5736kb

input:

3 4
5 8 1 3 2 4 6 7

output:

2 3 0 1 1 2 2 2 

result:

ok 8 numbers

Test #8:

score: 0
Accepted
time: 1ms
memory: 5688kb

input:

3 1
7 3 8 6 5 2 4 1

output:

2 1 3 1 2 1 2 0 

result:

ok 8 numbers

Test #9:

score: 0
Accepted
time: 1ms
memory: 7820kb

input:

3 4
1 2 5 3 6 7 4 8

output:

0 1 2 1 2 2 2 3 

result:

ok 8 numbers

Test #10:

score: 0
Accepted
time: 1ms
memory: 5788kb

input:

3 2
2 4 8 6 3 7 5 1

output:

1 2 3 2 1 2 2 0 

result:

ok 8 numbers

Test #11:

score: 0
Accepted
time: 0ms
memory: 5832kb

input:

10 780
495 929 348 345 426 543 187 419 839 812 320 1018 251 284 944 258 721 640 730 528 316 247 313 195 809 948 261 615 805 213 388 894 1005 77 599 636 881 444 144 923 240 520 592 465 96 455 563 943 237 860 531 269 106 989 740 506 23 224 84 475 108 718 3 16 731 436 591 627 672 300 573 613 253 637 46...

output:

8 9 8 8 8 9 7 8 9 9 8 9 7 8 9 8 9 9 9 9 8 7 8 7 9 9 8 9 9 7 8 9 9 6 9 9 9 8 7 9 7 9 9 8 6 8 9 9 7 9 9 8 6 9 9 8 4 7 6 8 6 9 1 4 9 8 9 9 9 8 9 9 7 9 8 9 9 9 6 7 6 7 9 9 9 9 9 7 6 8 8 8 9 9 6 6 9 9 9 8 9 9 6 9 9 8 6 7 8 8 3 8 8 9 6 9 7 8 8 9 9 9 9 8 7 9 8 8 7 7 9 9 9 9 9 8 8 9 6 9 9 9 9 9 9 6 9 8 8 9 ...

result:

ok 1024 numbers

Test #12:

score: 0
Accepted
time: 1ms
memory: 5872kb

input:

10 175
10 301 861 580 539 53 822 97 923 133 952 870 438 265 55 825 557 784 976 584 993 897 981 259 875 18 106 399 1019 692 336 485 491 9 565 114 738 128 678 23 562 538 869 787 768 385 494 640 655 666 332 930 798 418 801 266 1009 846 54 37 967 139 394 802 168 503 233 848 340 329 240 898 251 1023 779 ...

output:

3 7 9 8 8 5 9 6 9 7 9 9 8 7 5 9 8 9 9 8 9 9 9 7 9 4 6 8 9 9 8 8 8 3 8 6 9 7 9 4 8 8 9 9 9 8 8 8 8 8 8 9 9 8 9 7 9 9 5 5 9 7 8 9 7 8 7 9 8 8 7 9 7 9 9 9 8 8 9 9 8 7 9 7 8 6 8 5 5 9 9 7 8 9 6 5 8 9 8 5 7 8 9 7 6 9 8 9 8 2 6 9 8 9 9 8 8 5 9 8 9 7 9 9 9 6 9 9 7 10 9 8 9 9 9 7 8 7 8 8 8 6 7 6 7 4 8 9 9 8...

result:

ok 1024 numbers

Test #13:

score: 0
Accepted
time: 1ms
memory: 5760kb

input:

10 15
829 331 590 799 39 456 888 779 60 411 796 148 678 930 101 653 81 429 4 457 455 703 780 260 251 21 291 122 366 177 665 326 114 96 445 123 154 340 522 113 895 170 144 857 447 865 874 891 679 541 867 731 436 219 871 596 285 1008 435 263 881 798 16 275 14 97 845 269 974 782 343 404 561 540 443 482...

output:

6 4 5 6 4 5 7 5 4 4 6 4 5 7 4 5 4 5 2 5 5 5 6 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 5 4 7 4 4 6 5 6 7 7 5 5 6 5 4 4 6 5 4 9 4 4 7 6 4 4 3 4 6 4 8 6 4 4 5 5 4 5 7 7 4 4 4 4 4 5 9 4 4 7 5 8 4 4 6 4 6 9 6 4 8 5 5 4 4 4 5 4 5 5 4 4 4 4 5 4 5 5 4 5 4 4 5 4 4 6 4 9 5 6 8 6 5 6 6 7 4 4 4 4 4 4 4 3 4 4 4 4 6 7 7 5 ...

result:

ok 1024 numbers

Test #14:

score: 0
Accepted
time: 1ms
memory: 5700kb

input:

10 215
910 367 1011 675 689 697 604 665 730 306 743 225 210 1008 546 439 411 475 529 640 54 505 420 481 213 406 1012 933 392 121 751 554 265 550 621 537 212 908 49 918 768 125 16 927 507 863 1000 44 900 7 645 543 784 461 569 669 984 249 189 727 497 994 719 282 666 691 58 795 119 515 682 150 53 494 6...

output:

9 8 9 9 9 9 9 9 9 8 9 7 7 9 8 8 8 8 8 9 5 8 8 8 7 8 9 9 8 6 9 8 8 8 9 8 7 9 5 9 9 6 4 9 8 9 9 5 9 2 9 8 9 8 8 9 9 7 7 9 8 9 9 8 9 9 5 9 6 8 9 7 5 8 9 8 9 9 7 9 8 9 9 9 8 9 7 5 8 7 9 8 8 6 9 9 8 6 5 9 8 8 9 8 7 9 9 8 6 4 9 6 9 8 8 9 7 8 9 8 5 8 8 9 8 9 8 9 9 8 8 7 5 9 9 9 9 9 8 8 9 9 6 8 6 8 6 9 9 9 ...

result:

ok 1024 numbers

Test #15:

score: 0
Accepted
time: 0ms
memory: 5756kb

input:

10 358
714 252 544 999 507 766 720 169 379 856 698 40 910 610 564 125 278 426 285 205 746 43 23 284 81 525 848 540 827 604 630 741 27 313 452 724 9 745 762 263 44 901 864 445 418 596 310 719 988 536 799 625 202 895 412 153 847 145 353 297 133 260 717 893 158 314 90 356 108 315 1016 510 1015 1007 747...

output:

9 7 9 9 8 9 9 7 8 9 9 5 9 9 9 6 8 8 8 7 9 5 4 8 6 9 9 9 9 9 9 9 4 8 8 9 3 9 9 8 5 9 9 8 8 9 8 9 9 9 9 9 7 9 8 7 9 7 8 8 7 8 9 9 7 8 6 8 6 8 9 8 9 9 9 7 9 9 7 9 6 9 9 7 8 7 9 7 8 7 9 9 7 9 9 4 8 9 8 9 9 9 7 9 6 9 8 9 9 9 8 9 9 9 8 3 8 9 4 7 8 8 8 8 8 8 9 6 8 6 9 7 9 9 8 7 9 9 9 9 7 8 9 8 9 8 9 7 8 9 ...

result:

ok 1024 numbers

Test #16:

score: 0
Accepted
time: 1ms
memory: 5892kb

input:

10 409
720 603 348 938 361 756 506 176 661 192 318 599 115 548 681 692 915 148 721 93 424 707 404 392 695 342 247 799 743 814 82 120 365 428 461 355 184 372 224 810 225 569 630 800 480 226 802 867 136 592 723 412 248 619 817 67 891 72 74 315 624 250 1001 73 536 397 859 553 647 143 575 733 468 298 71...

output:

9 9 8 9 8 9 8 7 9 7 8 9 6 9 9 9 9 7 9 6 8 9 8 8 9 8 7 9 9 9 6 6 8 8 8 8 7 8 7 9 7 9 9 9 8 7 9 9 7 9 9 8 7 9 9 6 9 6 6 8 9 7 9 6 9 8 9 9 9 7 9 9 8 8 9 6 9 9 8 9 9 9 7 8 8 9 5 9 7 7 7 9 9 9 8 7 8 9 8 8 8 8 4 8 8 9 9 8 6 9 9 9 2 9 7 9 8 9 8 7 8 7 9 6 6 9 9 9 7 9 9 8 9 9 9 9 8 9 8 8 8 9 9 9 8 9 6 9 8 9 ...

result:

ok 1024 numbers

Test #17:

score: 0
Accepted
time: 0ms
memory: 5756kb

input:

10 700
469 249 763 385 977 949 423 11 825 442 744 993 553 908 410 860 465 291 751 234 50 897 64 346 481 1010 444 88 605 268 531 167 853 367 389 191 784 723 783 277 916 649 418 932 516 972 714 905 358 364 334 293 391 337 785 837 721 568 555 102 456 554 165 141 253 852 43 109 699 963 915 611 16 156 83...

output:

8 7 9 8 9 9 8 3 9 8 9 9 9 9 8 9 8 8 9 7 5 9 6 8 8 9 8 6 9 8 9 7 9 8 8 7 9 9 9 8 9 9 8 9 9 9 9 9 8 8 8 8 8 8 9 9 9 9 9 6 8 9 7 7 7 9 5 6 9 9 9 9 4 7 6 8 9 9 9 7 6 5 8 8 9 8 8 8 9 7 8 9 8 8 7 9 7 9 6 6 8 9 5 9 9 8 9 8 9 9 9 8 9 8 8 9 7 9 8 6 8 6 9 9 6 9 9 5 8 7 8 9 8 8 9 6 7 7 9 8 9 9 9 9 9 6 9 9 7 6 ...

result:

ok 1024 numbers

Test #18:

score: 0
Accepted
time: 1ms
memory: 5756kb

input:

10 655
971 111 296 479 453 490 163 686 195 492 1014 762 1021 15 351 618 137 181 853 758 876 598 703 486 125 35 41 266 603 682 733 294 391 967 373 508 860 501 1018 1003 642 365 531 883 89 674 869 311 442 734 886 165 701 139 447 271 540 190 983 474 816 769 1015 101 896 904 692 627 643 750 615 20 406 5...

output:

9 6 8 8 8 8 7 9 7 8 9 9 9 3 8 9 7 7 9 9 9 9 9 8 6 5 5 8 9 9 9 8 8 9 8 8 9 8 9 9 9 8 9 9 6 9 9 8 8 9 9 7 9 7 8 8 9 7 9 8 9 9 9 6 9 9 9 9 9 9 9 4 8 8 7 8 7 9 9 8 2 9 9 9 9 9 9 5 8 7 9 9 7 8 8 6 7 7 7 8 9 9 9 9 9 7 9 9 9 5 9 9 7 7 9 9 8 9 7 6 7 8 9 8 4 9 8 9 9 9 8 9 8 8 9 5 8 7 4 9 9 9 6 8 8 9 8 9 9 8 ...

result:

ok 1024 numbers

Test #19:

score: 0
Accepted
time: 1ms
memory: 5832kb

input:

10 827
692 816 52 570 178 260 248 531 852 777 232 378 955 632 325 256 328 599 802 165 966 493 166 125 488 942 965 716 947 276 156 894 194 742 933 185 384 152 277 333 991 424 487 435 423 504 113 106 307 205 745 155 654 226 16 518 884 757 1009 133 401 392 451 510 682 717 922 608 148 206 854 355 728 51...

output:

9 9 5 9 7 8 7 9 9 9 7 8 9 9 8 8 8 9 9 7 9 8 7 6 8 9 9 9 9 8 7 9 7 9 9 7 8 7 8 8 9 8 8 8 8 8 6 6 8 7 9 7 9 7 4 9 9 9 9 7 8 8 8 8 9 9 9 9 7 7 9 8 9 8 7 7 5 7 8 9 8 8 8 9 9 7 9 6 9 8 6 6 4 9 8 5 9 6 9 9 7 9 9 6 9 9 8 8 9 9 9 9 9 9 8 2 6 9 9 9 7 8 9 9 2 8 7 8 8 8 7 9 9 8 9 8 4 9 9 8 9 8 8 9 4 8 9 9 9 6 ...

result:

ok 1024 numbers

Test #20:

score: 0
Accepted
time: 1ms
memory: 5696kb

input:

10 328
454 408 810 540 254 321 33 682 91 53 398 761 1023 243 581 545 825 892 100 356 17 326 487 878 787 756 996 707 770 924 945 272 428 686 339 908 390 645 238 337 517 364 717 404 533 394 849 435 894 947 482 806 657 39 781 946 75 656 129 476 676 984 456 412 463 160 562 592 345 141 145 501 921 991 21...

output:

8 8 9 9 7 8 5 9 6 5 8 9 9 7 9 9 9 9 6 8 4 8 8 9 9 9 9 9 9 9 9 8 8 9 8 9 8 9 7 8 9 8 9 8 9 8 9 8 9 9 8 9 9 5 9 9 6 9 7 8 9 9 8 8 8 7 9 9 8 7 7 8 9 9 7 8 6 5 9 9 3 9 9 6 9 9 6 9 1 9 9 8 8 8 8 8 8 9 8 9 8 5 8 9 7 9 8 7 8 9 9 8 8 2 9 7 8 9 7 9 8 9 9 9 8 8 9 9 9 8 9 6 7 9 9 8 8 9 7 9 9 9 9 9 9 9 9 4 6 9 ...

result:

ok 1024 numbers

Test #21:

score: 0
Accepted
time: 1ms
memory: 5760kb

input:

10 825
601 142 625 471 287 405 117 857 340 984 863 530 575 994 436 394 529 25 141 332 735 966 1 831 673 896 89 272 649 81 384 242 864 817 174 382 145 469 577 715 893 275 914 455 667 169 179 521 305 925 976 213 40 380 659 499 918 725 561 616 948 924 1022 721 235 485 85 781 540 52 892 982 254 461 381 ...

output:

9 7 9 8 8 8 6 9 8 9 9 9 9 9 8 8 9 4 7 8 9 9 0 9 9 9 6 8 9 6 8 7 9 9 7 8 7 8 9 9 9 8 9 8 9 7 7 9 8 9 9 7 5 8 9 8 9 9 9 9 9 9 9 9 7 8 6 9 9 5 9 9 7 8 8 9 9 6 9 9 9 9 8 4 5 7 9 9 8 5 9 9 9 7 9 6 8 9 2 6 9 8 9 7 7 9 9 9 9 9 9 7 8 8 9 9 9 6 9 8 7 9 9 6 9 9 9 4 9 8 9 9 9 8 7 8 7 8 7 8 9 8 4 9 9 9 6 7 7 9 ...

result:

ok 1024 numbers

Test #22:

score: 0
Accepted
time: 240ms
memory: 39912kb

input:

20 0
179487 921757 700836 1026745 871114 487101 416568 943369 555729 702080 475044 257810 489454 716476 879881 237658 884615 645342 654881 754504 537330 488794 60810 581898 627225 134547 267586 35544 535278 202909 1006004 182486 863804 12271 705426 1000913 315415 495258 494119 323180 59354 347058 62...

output:

0 1 0 5 1 0 0 2 0 2 1 0 0 1 3 0 3 0 0 1 1 0 0 2 2 0 1 0 1 0 4 0 1 0 0 3 0 2 1 0 0 1 0 2 1 0 6 0 4 0 0 1 0 1 0 2 2 0 0 1 0 3 0 1 4 0 0 1 2 0 0 1 0 1 0 3 0 1 2 0 2 0 1 0 3 0 0 1 1 0 12 0 2 0 1 0 0 1 4 0 0 1 2 0 0 3 0 1 0 1 0 2 1 0 2 0 0 1 3 0 0 1 0 5 0 1 2 0 1 0 0 3 1 0 0 2 1 0 4 0 2 0 0 1 1 0 2 0 0 5...

result:

ok 1048576 numbers

Test #23:

score: 0
Accepted
time: 239ms
memory: 39856kb

input:

20 0
423991 752898 398498 684927 789044 263019 482251 912839 731501 161924 299043 221772 386164 726231 81052 522548 2147 664063 669633 811292 646801 487230 645801 231433 697608 767873 119403 655574 294512 625240 464604 171777 37789 989183 13473 24697 1013507 285860 816836 313163 256565 724812 246357...

output:

0 2 0 1 1 0 0 5 3 0 1 0 0 2 0 1 0 1 0 4 2 0 1 0 0 3 0 1 0 2 1 0 0 2 0 1 3 0 1 0 0 2 1 0 0 1 0 6 4 0 1 0 0 2 0 1 1 0 0 3 1 0 0 2 0 1 2 0 0 3 1 0 0 5 1 0 0 1 2 0 2 0 1 0 1 0 4 0 0 3 0 1 2 0 1 0 0 1 3 0 2 0 0 1 8 0 0 1 1 0 2 0 1 0 0 3 0 1 2 0 4 0 1 0 0 2 1 0 6 0 1 0 1 0 2 0 1 0 0 2 1 0 3 0 0 1 0 4 2 0 ...

result:

ok 1048576 numbers

Test #24:

score: 0
Accepted
time: 233ms
memory: 39708kb

input:

20 0
983530 824894 353093 559444 613542 519778 1010412 455455 935622 219374 221225 1002197 688110 472174 221344 689249 527925 36045 510374 449980 724144 993684 416271 594751 888484 336792 425268 493926 392740 391689 841678 822738 12764 433848 349413 450603 182285 354617 758953 176599 70237 340919 10...

output:

2 0 0 1 1 0 6 0 1 0 0 3 1 0 0 2 2 0 1 0 0 4 0 1 3 0 0 1 1 0 2 0 0 1 0 2 0 1 4 0 0 1 0 3 0 1 0 2 0 3 0 1 1 0 2 0 0 5 0 1 0 2 0 1 1 0 2 0 0 1 0 4 1 0 0 2 0 1 0 3 0 2 1 0 7 0 1 0 0 3 1 0 0 1 2 0 0 1 2 0 1 0 0 4 0 2 0 1 1 0 0 3 0 2 0 1 0 1 0 3 0 5 1 0 1 0 2 0 4 0 0 1 0 2 0 1 2 0 1 0 3 0 1 0 1 0 6 0 0 2 ...

result:

ok 1048576 numbers

Test #25:

score: 0
Accepted
time: 240ms
memory: 39620kb

input:

20 0
473443 822631 836606 745020 669384 831958 929557 812459 979454 261979 335172 118201 544502 229223 877541 915721 504368 226689 582157 166448 910835 805293 989769 735782 836472 212234 901652 203944 246343 341883 923372 761793 496413 774045 10709 822705 804842 393237 234688 760980 575433 264037 29...

output:

0 1 2 0 0 1 3 0 4 0 1 0 1 0 0 2 1 0 2 0 1 0 5 0 1 0 2 0 0 1 3 0 0 1 0 3 2 0 0 1 1 0 0 6 2 0 0 1 0 1 0 2 0 1 0 3 1 0 2 0 0 4 0 1 0 1 8 0 2 0 1 0 1 0 0 3 2 0 0 1 0 1 0 3 0 2 1 0 2 0 0 1 1 0 0 4 1 0 3 0 1 0 2 0 2 0 0 1 4 0 0 1 2 0 1 0 1 0 3 0 0 2 1 0 0 1 5 0 2 0 1 0 0 4 1 0 3 0 0 1 1 0 0 2 0 6 0 1 2 0 ...

result:

ok 1048576 numbers

Test #26:

score: 0
Accepted
time: 243ms
memory: 39892kb

input:

20 0
379980 596897 473700 685210 871737 592347 265581 99773 654162 711671 796026 221716 77951 211806 1016499 68541 105291 832026 37890 741817 787 338525 847057 564452 291439 25137 796527 274136 516811 336906 65693 431115 565546 913432 505987 731031 411514 962171 317881 69424 7338 181350 326333 89987...

output:

0 1 0 2 3 0 1 0 0 1 2 0 0 1 5 0 0 2 0 1 0 1 4 0 1 0 3 0 2 0 0 1 0 2 0 1 0 4 1 0 0 1 0 3 1 0 2 0 0 6 0 1 2 0 1 0 0 1 2 0 0 3 1 0 0 3 1 0 0 1 2 0 0 2 0 1 4 0 1 0 0 3 0 1 2 0 1 0 1 0 0 2 1 0 5 0 2 0 0 1 1 0 4 0 0 1 0 3 2 0 1 0 1 0 0 2 1 0 3 0 0 1 2 0 1 0 0 8 0 3 1 0 0 2 1 0 1 0 0 2 5 0 1 0 0 1 0 2 1 0 ...

result:

ok 1048576 numbers

Test #27:

score: 0
Accepted
time: 218ms
memory: 39396kb

input:

20 966077
920272 22829 905052 391939 529694 220017 113245 305146 1033496 776070 372388 649193 372732 578999 535089 376914 300958 674096 713438 294435 185108 175377 843411 186645 326129 937577 777304 855769 317353 63291 166972 152975 982092 882338 296632 371732 94559 247688 915006 853946 1012694 9336...

output:

19 14 19 18 19 17 16 18 19 19 18 19 18 19 19 18 18 19 19 18 17 17 19 17 18 19 19 19 18 15 17 17 19 19 18 18 16 17 19 19 19 19 19 18 19 19 18 18 17 19 18 19 8 19 17 19 18 15 18 18 19 19 18 19 18 18 19 19 18 19 18 15 19 19 19 19 19 19 19 19 18 19 19 19 18 19 19 19 19 19 18 19 19 19 19 18 19 19 17 10 1...

result:

ok 1048576 numbers

Test #28:

score: 0
Accepted
time: 235ms
memory: 38520kb

input:

20 555721
1021880 172635 932280 918167 428846 525908 637187 103654 49068 457344 839373 885403 875027 863134 159977 579040 304249 818545 817257 382257 340884 241982 600075 712988 202019 851311 748360 695531 253852 133923 1008492 733146 54917 186299 303527 503548 507480 252648 624742 477048 106320 821...

output:

19 17 19 19 18 19 19 16 15 18 19 19 19 19 17 19 18 19 19 18 18 17 19 19 17 19 19 19 17 17 19 19 15 17 18 18 18 17 19 18 16 19 19 18 19 18 19 19 19 19 18 18 19 19 19 18 18 18 19 17 18 19 19 18 19 18 19 18 19 18 16 18 18 19 16 19 19 19 18 17 18 19 17 17 14 17 17 19 19 19 17 19 19 17 19 18 19 18 19 19 ...

result:

ok 1048576 numbers

Test #29:

score: 0
Accepted
time: 216ms
memory: 40228kb

input:

20 2
87510 685288 54938 588070 730372 367883 146344 699592 300414 900908 862877 34670 608547 282283 117736 44808 999805 244617 341801 858399 835822 519712 716403 614366 485823 268639 172640 546962 812810 157814 475854 213833 81808 987188 847699 726734 206379 1012914 844523 385962 511314 353768 94378...

output:

2 3 1 2 4 2 1 3 2 5 5 1 3 2 2 1 6 1 2 4 4 1 2 2 3 2 1 3 3 1 2 2 1 5 3 2 1 6 2 2 2 1 4 3 3 2 2 1 2 1 7 3 1 4 2 2 4 1 3 2 2 3 2 1 4 1 2 3 2 2 4 1 3 1 2 3 2 1 4 2 2 1 3 5 2 1 3 2 1 6 2 2 1 5 3 2 1 2 5 2 1 4 2 3 1 3 2 4 1 2 2 3 1 3 2 2 2 3 1 3 2 9 2 1 1 10 2 4 2 1 4 3 2 2 5 1 2 5 3 1 1 2 3 2 1 2 3 2 3 2...

result:

ok 1048576 numbers

Test #30:

score: 0
Accepted
time: 226ms
memory: 39948kb

input:

20 3
924274 728807 143468 851897 609988 262663 982977 610373 135163 134795 923793 569204 875986 702834 971502 187748 476516 975902 30626 644269 750325 1008247 323883 860636 159423 598401 812886 286710 132495 750781 261871 354651 706866 180913 835118 817970 433926 930245 403851 555752 127938 224375 6...

output:

4 3 2 3 2 2 6 2 2 2 4 2 3 3 5 2 2 5 2 2 3 6 2 4 2 3 4 2 2 3 2 3 3 2 4 4 2 5 2 2 2 2 3 3 2 5 2 3 2 2 3 4 3 2 4 2 2 8 2 3 2 3 7 2 3 5 2 2 4 3 2 2 4 2 2 2 3 3 2 5 4 5 2 3 2 5 2 2 3 3 2 4 2 2 3 2 2 3 4 7 4 2 2 2 2 6 2 2 2 3 3 3 2 3 2 4 3 2 7 2 2 3 2 2 2 4 3 6 2 2 6 3 5 2 2 3 3 2 2 2 3 4 8 2 2 2 2 4 3 2 ...

result:

ok 1048576 numbers

Test #31:

score: 0
Accepted
time: 231ms
memory: 40260kb

input:

20 0
902882 664857 1047224 183618 88593 382161 107917 67910 527299 367280 276070 1032135 680366 72379 583921 516904 965765 513924 476186 648968 534455 800221 24161 171781 528257 795611 1385 536913 485662 465619 713814 725103 525557 690722 90305 573527 1015872 121873 542098 949802 127102 958923 53236...

output:

1 0 9 0 0 2 1 0 1 0 0 3 2 0 1 0 4 0 0 1 0 2 0 1 0 3 0 1 1 0 0 2 0 2 0 1 5 0 0 1 0 3 0 1 0 1 2 0 4 0 0 1 0 2 0 1 0 2 1 0 1 0 0 3 2 0 0 1 1 0 5 0 0 1 0 3 1 0 0 2 0 2 0 1 0 3 0 1 2 0 1 0 0 1 4 0 1 0 4 0 2 0 1 0 0 2 0 1 1 0 0 3 0 6 0 1 0 2 0 1 0 3 1 0 0 1 0 2 2 0 0 1 0 7 1 0 0 1 0 2 0 1 3 0 0 2 1 0 1 0 ...

result:

ok 1048576 numbers

Test #32:

score: 0
Accepted
time: 0ms
memory: 5672kb

input:

1 1
2 1

output:

1 0 

result:

ok 2 number(s): "1 0"

Test #33:

score: 0
Accepted
time: 0ms
memory: 5804kb

input:

1 0
1 2

output:

0 1 

result:

ok 2 number(s): "0 1"

Test #34:

score: 0
Accepted
time: 221ms
memory: 40612kb

input:

20 1048575
924274 728807 143468 851897 609988 262663 982977 610373 135163 134795 923793 569204 875986 702834 971502 187748 476516 975902 30626 644269 750325 1008247 323883 860636 159423 598401 812886 286710 132495 750781 261871 354651 706866 180913 835118 817970 433926 930245 403851 555752 127938 22...

output:

19 19 17 19 19 18 19 19 17 17 19 19 19 19 19 17 18 19 14 19 19 19 18 19 17 19 19 18 17 19 17 18 19 17 19 19 18 19 18 19 16 17 19 18 17 19 15 18 19 16 19 19 19 18 19 17 19 19 19 19 19 19 19 17 19 19 12 18 19 18 14 16 19 16 15 16 19 18 14 19 19 19 16 18 17 19 18 17 19 19 16 19 16 14 18 16 18 19 19 19 ...

result:

ok 1048576 numbers

Extra Test:

score: 0
Extra Test Passed