Submission #1175322

#TimeUsernameProblemLanguageResultExecution timeMemory
1175322betvoiChameleon's Love (JOI20_chameleon)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "chameleon.h"
#define ll long long
#define ldb long double
#define endl '\n'
#define For(i,l,r) for(int i=l;i<=r;i++)
#define ForD(i,r,l) for(int i=r;i>=l;i--)
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(),x.end()
#define sz(x) (signed)x.size()
#define unq(x) x.resize(unique(all(x))-x.begin())
#define F "TASK"
#define fio freopen(F".INP","r",stdin);freopen(F".OUT","w",stdout);

#ifdef NCGM
#include"debug.h"
#else 
#define debug(...) "fr";
#endif

using namespace std;

int n,l[1000],xr[1002],qr=0;
int cm[1000],cl[1002];
bool c[1000],c1[1000],cnt[1002];
vector<int> g[1002],cur1,cur;
queue<int> qu;
void bfs(int x) {
    while(sz(qu)) qu.pop();
    cl[x]=0;
    qu.push(x);
    while(sz(qu)) {
        int u=qu.front();
        qu.pop();
        for(auto v: g[u])
            if (cl[v]==-1) {
                cl[v]=!cl[u];
                qu.push(v);
            }
    }
}
void add(int u) {
    if (cur1.empty()) return;
    vector<int> tmp;
    tmp=cur1;
    tmp.pb(u);
    if (query(tmp)>=sz(tmp)) return;
    int j=0;
    tmp.clear();
    while(j<sz(cur1)) {
        tmp.clear();
        For(i,j,sz(cur1)-1) tmp.pb(cur1[i]);
        tmp.pb(u);
        if (j>=sz(cur1) || query(tmp)>=sz(tmp)) return;
        int l=j,r=sz(cur1)-1;
        while(l<r) {
            int mid=l+(r-l)/2;
            tmp.clear();
            For(i,j,mid) tmp.pb(cur1[i]);
            tmp.pb(u);
            if (query(tmp)<sz(tmp)) r=mid;
            else l=mid+1;
        }
        g[u].pb(cur1[l]);
        g[cur1[l]].pb(u);
        j=l+1;
    }
}
void solve(int N) {
    n=N;
    For(i,1,n*2) g[i].clear();
    For(i,1,n*2) {
        for(auto el: cur) cl[el]=-1;
        for(auto el: cur)
            if (cl[el]==-1) bfs(el);
        cur1.clear();
        for(auto el: cur)
            if (cl[el]) cur1.pb(el);
        add(i);
        cur1.clear();
        for(auto el: cur)
            if (!cl[el]) cur1.pb(el);
        add(i);
        cur.pb(i);
    }
    vector<int> tmp;
    For(i,1,n*2) 
        if (sz(g[i])==3) {
            tmp.clear();
            tmp.pb(i),tmp.pb(g[i][0]),tmp.pb(g[i][1]);
            if (query(tmp)==1) xr[i]=g[i][2];
            else {
                tmp.pop_back();
                tmp.pb(g[i][2]);
                if (query(tmp)==1) xr[i]=g[i][1];
                else xr[i]=g[i][0];
            }
        }
    For(i,1,n*2) {
        if (cnt[i]) continue;
        if (sz(g[i])==1) {
            cnt[i]=cnt[g[i][0]]=1;
            answer(i,g[i][0]);
        } else {
            for(auto el: g[i]) {
                if (el!=xr[i] && ((sz(g[el])==1 && g[el][0]==i) || (sz(g[el])==3 && xr[el]!=i))) {
                    answer(el,i);
                    cnt[el]=cnt[i]=1;
                    break;
                }
            }
        }
    }
}
#ifdef NCGM
int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n;
    For(i,1,n*2) {
        int oo;
        cin >> oo;
    }
    For(i,1,n*2) cin >> cm[i];
    For(i,1,n*2) cin >> l[i];
    vector<int> hihi={1,3,4};
    // cout << query(hihi) << endl;
    solve(n);
    return 0;
}
#endif

Compilation message (stderr)

chameleon.cpp: In function 'void add(int)':
chameleon.cpp:49:9: error: 'query' was not declared in this scope; did you mean 'Query'?
   49 |     if (query(tmp)>=sz(tmp)) return;
      |         ^~~~~
      |         Query
chameleon.cpp:56:28: error: 'query' was not declared in this scope; did you mean 'Query'?
   56 |         if (j>=sz(cur1) || query(tmp)>=sz(tmp)) return;
      |                            ^~~~~
      |                            Query
chameleon.cpp:63:17: error: 'query' was not declared in this scope; did you mean 'Query'?
   63 |             if (query(tmp)<sz(tmp)) r=mid;
      |                 ^~~~~
      |                 Query
chameleon.cpp: In function 'void solve(int)':
chameleon.cpp:93:17: error: 'query' was not declared in this scope; did you mean 'Query'?
   93 |             if (query(tmp)==1) xr[i]=g[i][2];
      |                 ^~~~~
      |                 Query
chameleon.cpp:105:13: error: 'answer' was not declared in this scope; did you mean 'Answer'?
  105 |             answer(i,g[i][0]);
      |             ^~~~~~
      |             Answer
chameleon.cpp:109:21: error: 'answer' was not declared in this scope; did you mean 'Answer'?
  109 |                     answer(el,i);
      |                     ^~~~~~
      |                     Answer