Submission #1316930

#TimeUsernameProblemLanguageResultExecution timeMemory
1316930vlomaczk카멜레온의 사랑 (JOI20_chameleon)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> typedef long long ll; using namespace __gnu_pbds; using namespace std; #include "chameleon.h" template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; set<pair<int, int>> Sa; void Ans(int x, int y) { if(x>y) swap(x,y); if(x==y) return; Sa.insert({x,y}); } void Finish() { for(auto[a,b] : Sa) Answer(a,b); } void Solve(int N) { vector<set<int>> V(2*N+1); vector<vector<int>> G(2*N+1), g(2*N+1); for(int i=1; i<=2*N; ++i) { vector<int> sets(2); vector<int> vis(2*N+1); queue<pair<int, int>> Q; for(int x=1; x<i; ++x) { Q.push({x,0}); while(Q.size()) { auto[v,c] = Q.front(); Q.pop(); put[c].push_back(v); vis[v] = 1; for(auto u : g[v]) { if(vis[u]) continue; Q.push({u,c^1}); } } } for(int k=0; k<2; ++k) { vector<int> q = sets[k]; q.push_back(i); int Q = Query(q); int start = 0; while(q.size() - Q > 0) { int lo = 0; int hi = sets[k].size() - 1; while(lo < hi) { int mid=(lo+hi)/2; vector<int> p; p.push_back(i); for(int j=start; j<=mid; ++j) p.push_back(sets[k][j]); if(p.size() - Query(p) > 0) hi = mid; else lo = mid+1; } G[i].push_back(sets[k][lo]); g[i].push_back(sets[k][lo]); G[sets[k][lo]].push_back(i); start = lo+1; while(q.size()) q.pop_back(); for(int j=start; j<sets[k].size(); ++j) q.push_back(sets[k][j]); q.push_back(i); Q = Query(q); } } } for(int i=1; i<=2*N; ++i) for(auto x : G[i]) V[i].insert(x); for(int i=1; i<=2*N; ++i) { if(V[i].size()==1) Ans(i,*V[i].begin()); else { vector<int> v; for(auto x : G[i]) v.push_back(x); for(int j=0; j<3; ++j) { vector<int> p = {i}; for(int x=0; x<3; ++x) if(x!=j) p.push_back(v[x]); if(Query(p)==1) { V[i].erase(v[j]); V[v[j]].erase(i); } } } } for(int i=1; i<=2*N; ++i) { if(V[i].size()==1) Ans(i,*V[i].begin()); } Finish(); }

Compilation message (stderr)

chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:35:33: error: 'put' was not declared in this scope; did you mean 'putw'?
   35 |                                 put[c].push_back(v);
      |                                 ^~~
      |                                 putw
chameleon.cpp:44:47: error: conversion from '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} to non-scalar type 'std::vector<int>' requested
   44 |                         vector<int> q = sets[k];
      |                                               ^
chameleon.cpp:50:50: error: request for member 'size' in 'sets.std::vector<int>::operator[](((std::vector<int>::size_type)k))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
   50 |                                 int hi = sets[k].size() - 1;
      |                                                  ^~~~
chameleon.cpp:54:90: error: invalid types '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[int]' for array subscript
   54 |                                         for(int j=start; j<=mid; ++j) p.push_back(sets[k][j]);
      |                                                                                          ^
chameleon.cpp:58:55: error: invalid types '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[int]' for array subscript
   58 |                                 G[i].push_back(sets[k][lo]);
      |                                                       ^
chameleon.cpp:59:55: error: invalid types '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[int]' for array subscript
   59 |                                 g[i].push_back(sets[k][lo]);
      |                                                       ^
chameleon.cpp:60:42: error: invalid types '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[int]' for array subscript
   60 |                                 G[sets[k][lo]].push_back(i);
      |                                          ^
chameleon.cpp:63:60: error: request for member 'size' in 'sets.std::vector<int>::operator[](((std::vector<int>::size_type)k))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
   63 |                                 for(int j=start; j<sets[k].size(); ++j) q.push_back(sets[k][j]);
      |                                                            ^~~~
chameleon.cpp:63:92: error: invalid types '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[int]' for array subscript
   63 |                                 for(int j=start; j<sets[k].size(); ++j) q.push_back(sets[k][j]);
      |                                                                                            ^