Submission #895694

#TimeUsernameProblemLanguageResultExecution timeMemory
895694UnforgettableplSnake Escaping (JOI18_snake_escaping)C++17
22 / 100
251 ms28844 KiB
//#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") /* ID: samikgo1 TASK: LANG: C++ */ #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef complex<ll> point; #define X real() #define Y imag() #define all(x) x.begin(),x.end() #define allr(x) x.rbegin(),x.rend() //#define f first //#define s second //#define x first //#define y second const ll INF = 1e17; const ll sqrtn = 440; const ll modulo = 1e9+7; const ll siz = 262144; const ll hashp = 923981238; const ll hashm = 932439994; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_pbds; //#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> #define int ll int memo[1594323]; char str[1048576]; char queries[1000000][20]; int ans[1000000]; int get(string &s,int i){ if(memo[i]!=-1)return memo[i]; int p = 1; for(char&x:s) { if (x == '?') { x = '0'; int ans = get(s, i + p); x = '1'; ans += get(s, i + 2 * p); x = '?'; return memo[i] = ans; } p*=3; } } int getidx(string s){ int p = 1; int ans = 0; for(char&a:s){ if(a=='0')ans+=p; else if(a=='1')ans+=p*2; p*=3; } return ans; } void solve() { for(int&i:memo)i=-1; int l,q; cin >> l >> q; for(int i=0;i<(1<<l);i++){ char a;cin>>a; a-='0'; memo[getidx(bitset<13>(i).to_string())] = a; } for(int i=1;i<=q;i++){ string s;cin>>s; for(int x=0;x<13-l;x++)s.insert(s.begin(),'0'); cout << get(s,getidx(s)) << '\n'; } } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); // freopen("cses.fi.txt","r",stdin); // freopen(".out","w",stdout); // int t; // cin >> t; // while(t--) solve(); }

Compilation message (stderr)

snake_escaping.cpp: In function 'll get(std::string&, ll)':
snake_escaping.cpp:54:1: warning: control reaches end of non-void function [-Wreturn-type]
   54 | }
      | ^
#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...