Submission #1211876

#TimeUsernameProblemLanguageResultExecution timeMemory
1211876user736482Message (IOI24_message)C++20
100 / 100
411 ms884 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define POT (1<<20) #define INFL 1000000000000000099 #include "message.h" vector<bool>efm,v; vector<ll>pck[31],v2; ll nxt[31]; vector<bool>ns; void send_message(vector<bool>m,vector<bool>c){ efm=m; efm.pb(1); for(ll i=0;i<1024-(ll)m.size();i++)efm.pb(0); reverse(efm.begin(),efm.end()); for(ll i=0;i<31;i++){pck[i].clear(); if(c[i]){ for(ll j=0;j<66;j++)pck[i].pb(0); } else{ for(ll j=i+1;c[j%31];j++)pck[i].pb(0); pck[i].pb(1); while(pck[i].size()<66){ pck[i].pb(efm.back());efm.pop_back(); } } } v.resize(31); for(ll i=0;i<66;i++){ for(ll j=0;j<31;j++)v[j]=pck[j][i]; send_packet(v); } } vector<bool>receive_message(vector<vector<bool>>r){ ns.clear(); for(ll i=0;i<31;i++){nxt[i]=(i+1)%31;for(ll j=0;j<66 && r[j][i]==0;j++)nxt[i]=(i+j+2)%31;} for(ll i=0;i<31;i++){ ll ile=1; ll ak=nxt[i]; v2={i}; while(ak!=i){ v2.pb(ak); ak=nxt[ak]; ile++; if(ile>16)break; } if(ile!=16)continue; for(ll j : v2){ ll k=1; while(!r[k-1][j])k++; while(k<66){ns.pb(r[k][j]);k++;} } break; } while(!ns.back())ns.pop_back(); ns.pop_back(); return ns; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...