Submission #952731

#TimeUsernameProblemLanguageResultExecution timeMemory
952731wojciech_domin2Snake Escaping (JOI18_snake_escaping)C++17
75 / 100
2066 ms39388 KiB
#include <bits/stdc++.h> #define pb push_back #define ins insert #define fi first #define se second #define debug(x) cout<<#x<<" = "<<x<<"\n"; using namespace std; using ull = unsigned long long; using ll = long long; using ld = long double; template <typename H, typename T> ostream& operator<<(ostream& os, pair<H, T> m){ return os <<"("<< m.fi<<", "<<m.se<<")"; } template <typename H> ostream& operator<<(ostream& os, vector<H> V){ os<<"{"; for(int i=0; i<V.size(); i++){ if(i)os<<" "; os<<V[i]; } os<<"}"; return os; } const int MAX_Q = 1000500; const int MAX_N = (1<<20)+50; bitset<64> s[MAX_Q]; int odp[MAX_Q]; int L, Q; void rekur(vector<int> &v, vector<int> &zapyt, int k){ if(zapyt.size()==0) { v.clear(); v.shrink_to_fit(); zapyt.clear(); zapyt.shrink_to_fit(); return; } if(v.size() == 0) return; if(v.size() == 1){ for(auto x : zapyt) odp[x] = v[0]; v.clear(); v.shrink_to_fit(); zapyt.clear(); zapyt.shrink_to_fit(); return; } vector<int> v1,v2,v3; for(int i = 0; i < v.size()/2; i++){ v1.pb(v[i]); v2.pb(v[i+v.size()/2]); v3.pb(v[i]+v[i+v.size()/2]); } v.clear(); v.shrink_to_fit(); vector<int> z1,z2,z3; for(int i = 0; i < zapyt.size(); i++){ if(!s[zapyt[i]][2*k] && !s[zapyt[i]][2*k+1]) z1.pb(zapyt[i]); if(s[zapyt[i]][2*k]) z2.pb(zapyt[i]); if(s[zapyt[i]][2*k+1]) z3.pb(zapyt[i]); } zapyt.clear(); zapyt.shrink_to_fit(); rekur(v1,z1,k+1); rekur(v2,z2,k+1); rekur(v3,z3,k+1); return; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); ll maxt = -1; cin>>L>>Q; vector<int> pom,zap; for(int i = 0; i < (1<<L); i++){ char c; cin >> c; pom.pb(int(c-'0')); } for(int i = 1; i <= Q; i++){ for(int j = 0; j < L; j++){ char c; cin>>c; if(c == '0'){ s[i][2*j] = 0; } if(c == '1'){ s[i][2*j] = 1; } if(c == '?'){ s[i][2*j+1] = 1; } } } for(int i = 1; i <= Q; i++) zap.pb(i); rekur(pom,zap,0); for(int i = 1; i <= Q; i++) cout<<odp[i]<<"\n"; }

Compilation message (stderr)

snake_escaping.cpp: In function 'void rekur(std::vector<int>&, std::vector<int>&, int)':
snake_escaping.cpp:53:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |  for(int i = 0; i < v.size()/2; i++){
      |                 ~~^~~~~~~~~~~~
snake_escaping.cpp:61:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |  for(int i = 0; i < zapyt.size(); i++){
      |                 ~~^~~~~~~~~~~~~~
snake_escaping.cpp: In function 'int main()':
snake_escaping.cpp:78:5: warning: unused variable 'maxt' [-Wunused-variable]
   78 |  ll maxt = -1;
      |     ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...