Submission #568717

# Submission time Handle Problem Language Result Execution time Memory
568717 2022-05-26T06:11:09 Z zaneyu Super Dango Maker (JOI22_dango3) C++17
100 / 100
4196 ms 936 KB
#include "dango3.h"

#include <bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
typedef tree<long long,null_type,less_equal<long long>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;
#pragma GCC optimize("Ofast")
//#pragma GCC target("avx2")
//order_of_key #of elements less than x
// find_by_order kth element
using ll=long long;
using ld=long double;
using pii=pair<int,int>;
#define f first
#define s second
#define pb push_back
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(int i=1;i<=n;i++)
#define FILL(n,x) memset(n,x,sizeof(n))
#define ALL(_a) _a.begin(),_a.end()
#define sz(x) (int)x.size()
#define SORT_UNIQUE(c) (sort(c.begin(),c.end()),c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
const ll maxn=1e5+5;
const ll maxlg=__lg(maxn)+2;
const ll INF64=4e18;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
const ld PI=acos(-1);
const ld eps=1e-6;
#define lowb(x) x&(-x)
#define MNTO(x,y) x=min(x,(__typeof__(x))y)
#define MXTO(x,y) x=max(x,(__typeof__(x))y)
template<typename T1,typename T2>
ostream& operator<<(ostream& out,pair<T1,T2> P){
    out<<P.f<<' '<<P.s;
    return out;
}
template<typename T>
ostream& operator<<(ostream& out,vector<T> V){
    REP(i,sz(V)) out<<V[i]<<((i!=sz(V)-1)?" ":"");
    return out;
}
namespace {

int variable_example = 1;
bool in[maxn];
bool ad[maxn];
mt19937 rng(69);
}  // namespace
void Solve(int n, int m) {
    REP(i,m-1){
        int cnt=0;
        vector<int> v;
        REP(j,n*m) if(!in[j]) v.pb(j);
        shuffle(ALL(v),rng);
        for(int j:v){
            ad[j]=1;
            vector<int> qq;
            REP(k,n*m) if(!ad[k]){
                qq.pb(k+1);
            }
            int ans=Query(qq);
            if(ans!=m-1) ad[j]=0;
            else{
                ++cnt;
            }
            if(cnt==n) break;
        }
        vector<int> ans;
        REP(j,n*m) if(ad[j]) ans.pb(j+1),ad[j]=0,in[j]=1;
        Answer(ans);
    }
        vector<int> ans;
        REP(j,n*m) if(!in[j]) ans.pb(j+1),ad[j]=0,in[j]=1;
        Answer(ans);
}

Compilation message

dango3.cpp:49:5: warning: '{anonymous}::variable_example' defined but not used [-Wunused-variable]
   49 | int variable_example = 1;
      |     ^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 312 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 308 KB Output is correct
2 Correct 28 ms 376 KB Output is correct
3 Correct 23 ms 340 KB Output is correct
4 Correct 29 ms 360 KB Output is correct
5 Correct 30 ms 380 KB Output is correct
6 Correct 30 ms 308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 892 ms 492 KB Output is correct
2 Correct 842 ms 596 KB Output is correct
3 Correct 786 ms 484 KB Output is correct
4 Correct 895 ms 488 KB Output is correct
5 Correct 870 ms 600 KB Output is correct
6 Correct 912 ms 484 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3811 ms 936 KB Output is correct
2 Correct 4196 ms 600 KB Output is correct
3 Correct 3904 ms 596 KB Output is correct
4 Correct 3901 ms 720 KB Output is correct
5 Correct 4133 ms 584 KB Output is correct
6 Correct 3877 ms 600 KB Output is correct