Submission #1209053

#TimeUsernameProblemLanguageResultExecution timeMemory
1209053Braabebo10Super Dango Maker (JOI22_dango3)C++20
7 / 100
687 ms736 KiB
#include "dango3.h"
#include<bits/stdc++.h>
#define ll int
#define nl "\n"
#define all(v) v.begin(),v.end()
#define baraa ios_base::sync_with_stdio(false);cin.tie(NULL);
using namespace std;

namespace {
    int variable_example = 1;
}

vector<ll> del(vector<ll> x, ll num) {
    vector<ll> x2;
    for (ll i = 0; i < x.size(); i++) {
        if (x[i] != num)x2.push_back(x[i]);
    }
    return x2;
}

void answer(vector<ll> x) {
    for (auto &i: x)i++;
    Answer(x);
}

ll query(vector<ll> x) {
    for (auto &i: x)i++;
    return Query(x);
}

void Solve(int n, int m) {
    //  std::vector<int> x(3);
    //  x[0] = 1;
    //  x[1] = 2;
    //  x[2] = 3;
    //  variable_example = Query(x);
    //  for (int i = 0; i < M; i++) {
    //    std::vector<int> a(N);
    //    for (int j = 0; j < N; j++) {
    //      a[j] = N * i + j + 1;
    //    }
    //    Answer(a);
    //  }
    vector<ll> rem;
    for (ll i = 0; i < n * m; i++)rem.push_back(i);
    while (rem.size()) {
        ll sz = rem.size(), l = 0, r = sz - 1, ans = -1, ans2 = -1;
        while (l <= r) {
            ll mid = (l + r) / 2;
            vector<ll> x;
            for (ll i = 0; i <= mid; i++)x.push_back(rem[i]);
            ll res = query(x);
            if (res >= 1)r = mid - 1, ans = mid;
            else l = mid + 1;
        }
        vector<ll> final;
        for (ll i = ans; i >= 0; i--)final.push_back(rem[i]);
        while (final.size() != n) {
            sz = final.size();
            for (ll i = 0; i < sz; i++)
                if (query(del(final, final[i])) >= 1) {
//                  cout << final[i] << nl;
                    final = del(final, final[i]);
                    sz--;
                    i--;
                }
        }
//        for (ll i: final)cout << i << ' ';
//        cout << nl;
        answer(final);
        for (ll i: final)rem = del(rem, i);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...