Submission #524602

#TimeUsernameProblemLanguageResultExecution timeMemory
524602amunduzbaevAncient Machine (JOI21_ancient_machine)C++17
0 / 100
47 ms7856 KiB
#include "Anna.h" #include "bits/stdc++.h" using namespace std; #define ll long long const int B = 89; ll dp[B][2]; void Anna(int n, vector<char> s) { int f = -1; for(int i=0;i<n;i++){ if(s[i] == 'X') { f = i; break; } } if(f == -1) return; vector<int> res(n); res[f] = 1; for(int i=f+2;i<n;i++){ if(s[i] == 'Z') res[i] = 1; if(s[i] == 'Z' && s[i-1] == 'Z') res[i-1] = 0; } dp[0][0] = dp[0][1] = 1; for(int i=1;i<B;i++){ dp[i][0] = dp[i-1][0] + dp[i-1][1]; dp[i][1] = dp[i-1][0]; } //~ auto get = [&](vector<int> x) { //~ ii res = (ii)0; //~ for(int i=0;i<(int)x.size();i++){ //~ if(x[i]) res += dp[i][0]; //~ } return res; //~ }; //~ for(int i=0;i<n;i++) cout<<res[i]<<" "; //~ cout<<"\n"; int C = (n + B - 1) / B; vector<int> rr; for(int i=0;i<C;i++){ vector<int> tmp = vector<int>(res.begin() + i * B, res.begin() + min(n, (i + 1) * B)); ll v = 0; for(int i=0;i<(int)tmp.size();i++){ if(tmp[i]) v = v + dp[i][0]; } for(int j=0;j<63;j++){ Send(v >> j & 1); } } }
#include "Bruno.h" #include "bits/stdc++.h" using namespace std; #define ll long long const int B = 89; void Bruno(int n, int l, vector<int> a) { ll dp[B][2] {}; dp[0][0] = dp[0][1] = 1; for(int i=1;i<B;i++){ dp[i][0] = dp[i-1][0] + dp[i-1][1]; dp[i][1] = dp[i-1][0]; } int C = (n + B - 1) / B; assert(l == C * 63); vector<int> is(l); for(int i=0;i<C;i++){ ll v = 0; for(int j=i*63;j<(i+1)*63;j++){ v |= ((a[j] * 1ll) << j); } for(int l=B-1;~l;l--){ if(v >= dp[l][0]) is[i * B + l] = 1, v -= dp[l][0]; } } //~ for(int i=0;i<n;i++) cout<<is[i]<<" "; //~ cout<<"\n"; int last = -1, f = -1; for(int i=0;i<n;i++){ if(~f){ if(is[i]){ int j = i - 1; while(j > last) Remove(j), j--; Remove(i); last = i; } } else { if(is[i]) f = last = i; else Remove(i); } } int j = n - 1; while(j > last) Remove(j), j--; Remove(f); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...