minerals.cpp:1:22: warning: extra tokens at end of #include directive
1 | #include "minerals.h"#include<bits/stdc++.h>#define all(x) begin(x), end(x)using namespace std;bitset<90000> on;int uwusgi(int x) { on.flip(x); return Query(x);}#define Query uwusgivoid Solve(int N) { vector<int> A, B, C(N), V(1<<16); mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); { vector<int> ord(2*N); iota(all(ord), 1); shuffle(all(ord), rng); int lst = 0; for(auto i : ord) { int cc = Query(i); (cc==lst ? B : A).push_back(i); lst = cc; } } // int CC = 0; auto AA = A; A.assign(1<<16, -1); vector<int> v(1<<16); iota(all(v), 0); // for(int b = 0; b < 16; b++) { // sort(all(v)); // int lst = 0; // int i = 0; // while(i < N) { // int j = i; // while(j < N && v[j] == v[i]) j++; // for(int x = 0; i+x < j; x++) // v[i+x] |= ((x&1)^lst)<<b;//, cout << ((x&1)^lst) << ","; // int c = 0; // for(int p = i; p < j; p++) c += (v[p]>>b)&1; // // cout << lst << " " << c << " " << j-i+1 << endl; // if((i-j)%2 == 0) lst ^= 1; // i = j; // } // } for(int i = 0; i < 1<<16; i++) { V[i] = 1^(i&1); for(int b = 1; b < 16; b++) { V[i] += (i>>b)%2 != (i>>(b-1))%2; } } sort(all(v), [&](auto x, auto y) { return V[x] < V[y] || (V[x] == V[y] && x < y); }); for(int i = 0; i < N; i++) A[v[i]] = AA[i]; B.resize(1<<16); for(int b = 0; b < 16; b++) { int lst = 0, ops = 0, done = 0; for(int i = 0; i < 1<<16; i++) if(A[i] != -1) ops += ((i>>b)&1)^on[A[i]]; if(ops > N-ops) for(int i = 0; i < 1<<16; i++) if(i < (i^(1<<b))) swap(A[i], A[i^(1<<b)]); for(int i = 0; i < 1<<16; i++) if(A[i] != -1) if((((i>>b)&1)^on[A[i]])&&!(A[i^(1<<b)]==-1)) lst = Query(A[i]), done++; // cout << ops << " " << N-ops << " " << done << endl; vector<int> cnt(1<<16), cnto(1<<16); for(auto i : C) cnt[i]++; for(int i = 0; i < 1<<b; i++) { for(int j = 0; j < 1<<(16-b); j++) { int c = i | (j<<b); if(A[c]!=-1) cnto[i] += j&1; } } for(int i = 0; i < N; i++) { if(!cnto[C[i]]) {cnt[C[i]]--;continue;} if(cnto[C[i]]) { int qq = -1; if(cnto[C[i]] == cnt[C[i]] && lst != qq) qq = lst;//cout << "HEY"<<endl; else qq = Query(B[i]); if(lst == qq) cnto[C[i]]--; C[i] |= (lst == qq)<<b; lst = qq; } cnt[C[i]]--; } // for(auto i : C) cout << i << " "; cout << endl; } for(int i = 0; i < N; i++) Answer(A[C[i]], B[i]); }
| ^
/usr/bin/ld: /tmp/ccWZaznG.o: in function `main':
grader.cpp:(.text.startup+0xbd): undefined reference to `Solve(int)'
collect2: error: ld returned 1 exit status