Submission #895686

# Submission time Handle Problem Language Result Execution time Memory
895686 2023-12-30T14:15:01 Z Unforgettablepl Snake Escaping (JOI18_snake_escaping) C++17
Compilation error
0 ms 0 KB
//#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

map<string,int> memo;

int get(string &s){
    if(memo.contains(s))return memo[s];
    for(char&x:s)if(x=='?'){
        x='1';
        int ans = get(s);
        x='0';
        ans += get(s);
        x='?';
        return memo[s]=ans;
    }
}

void solve() {
    int l,q;
    cin >> l >> q;
    for(int i=0;i<(1<<l);i++){
        char a;cin>>a;
        a-='0';
        memo[bitset<20>(i).to_string()] = a;
    }
    for(int i=1;i<=q;i++){
        string s;cin>>s;
        for(int x=0;x<20-l;x++)s.insert(s.begin(),'0');
        cout << get(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

snake_escaping.cpp: In function 'll get(std::string&)':
snake_escaping.cpp:38:13: error: 'class std::map<std::__cxx11::basic_string<char>, long long int>' has no member named 'contains'
   38 |     if(memo.contains(s))return memo[s];
      |             ^~~~~~~~
snake_escaping.cpp:47:1: warning: control reaches end of non-void function [-Wreturn-type]
   47 | }
      | ^