Submission #1219984

#TimeUsernameProblemLanguageResultExecution timeMemory
1219984vako_pBroken Device (JOI17_broken_device)C++20
0 / 100
20 ms1344 KiB
#include<bits/stdc++.h> using namespace std; #include "Annalib.h" #define ll long long void f(ll i, string s){ for(auto it : s){ int x = it - '0'; Set(i, x); i++; } } void Anna( int N, long long X, int K, int P[] ){ ll n = N,x = X,bit = 0,vis[N]; for(int i = 0; i < n; i++) vis[i] = 1; for(int i = 0; i < K; i++) vis[P[i]] = 0; map<string,string> mp; mp["00"] = "001"; mp["01"] = "101"; mp["10"] = "010"; mp["11"] = "111"; for(int i = 0; i < n; i += 3){ if(vis[i] + vis[i + 1] + vis[i + 2] >= 2 and bit < 38){ if((!vis[i] and !(((1LL << bit) & x) > 0)) or vis[i] + vis[i + 1] + vis[i + 2] == 3){ ll ok = (((1LL << bit) & x) > 0); char ch = '0' + ok; string s = ""; s += ch; bit++; ok = (((1LL << bit) & x) > 0); ch = (ok + '0'); s += ch; bit++; f(i, mp[s]); } else{ if((1LL << bit) & x){ if(vis[i]) f(i, "110"); else f(i, "011"); } else f(i, "100"); bit++; } } else f(i, "000"); } }
#include "Brunolib.h" #include<bits/stdc++.h> using namespace std; #define ll long long ll ff(ll &bit, string s){ ll x = (1LL << bit),res = 0; for(auto it : s){ if(it == '1') res += x; bit++; x *= 2; } return res; } long long Bruno(int N, int A[]){ ll res = 0; ll n = N,bit = 0; map<string,string> mp; mp["100"] = "0"; mp["011"] = "1"; mp["110"] = "1"; mp["001"] = "00"; mp["101"] = "01"; mp["010"] = "10"; mp["111"] = "11"; for(int i = 0; i < n; i += 3){ string s = ""; s += (A[i] + '0'); s += (A[i + 1] + '0'); s += (A[i + 2] + '0'); res += ff(bit, mp[s]); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...