QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#574985 | #9237. Message | maxrgby | Compile Error | / | / | C++20 | 2.0kb | 2024-09-19 09:35:26 | 2024-09-19 09:35:28 |
Judging History
answer
// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
#include "message.h"
using namespace std;
// vector<vector<bool>> hehe;
// vector<bool> send_packet(vector<bool> e){
// hehe.push_back(e);
// return e;
// }
void send_message(vector<bool> m, vector<bool> c){
assert(c.size() == 31);
int nxt[31];
int diff = 0;
for(int i = 0;i < 31;i++){
nxt[i] = 66;
if(c[i]){
continue;
}
for(int j = 1;j < 31;j++){
if(!c[(i+j)%31]){
nxt[i] = j;
diff += j;
break;
}
}
}
bool tmp = !m.back();
while(m.size() < 1025){
m.push_back(tmp);
}
vector<bool> ret[66];
for(int i = 0;i < 66;i++){
ret[i].resize(31);
}
int pos = 0;
for(int i = 0;i < 31;i++){
for(int j = 0;j < nxt[i]-1;j++){
ret[j][i] = 0;
}
ret[nxt[i]-1][i] = 1;
for(int j = nxt[i];j < 66;j++){
ret[j][i] = m[pos++];
}
}
for(int i = 0;i < 66;i++){
send_packet(ret[i]);
}
}
vector<bool> receive_message(vector<vector<bool>> r){
int nxt[31];
for(int i = 0;i < 31;i++){
nxt[i] = 66;
for(int j = 0;j < 66;j++){
if(r[j][i]){
nxt[i] = (i+j+1)%31;
break;
}
}
}
int good = -1;
for(int i = 0;i < 31;i++){
int u = i;
for(int j = 0;j < 16;j++){
u = nxt[u];
}
if(u == i){
good = i;
break;
}
}
vector<bool> ret;
for(int i = 0;i < 16;i++){
int j = 0;
while(j < 66 and !r[j][good]){
j++;
}
j++;
while(j < 66){
ret.push_back(r[j][good]);
j++;
}
good = nxt[good];
}
char c = ret.back();
while(ret.back() == c){
ret.pop_back(0);
}
assert(ret.size());
//ret.pop_back();
return ret;
}
// int main() {
// int n;
// cin >> n;
// vector<bool> a;
// vector<bool> c(31,0);
// for(int i = 0;i < n;i++){
// char c;
// cin >> c;
// a.push_back(c-'0');
// }
// for(int i = 1;i < 31;i += 2){
// c[i] = 1;
// }
// send_message(a,c);
// vector<bool> ans = receive_message(hehe);
// assert(ans == a);
// for(auto i : ans){
// cout << i;
// }
// }
Details
answer.code: In function ‘std::vector<bool> receive_message(std::vector<std::vector<bool> >)’: answer.code:91:29: error: no matching function for call to ‘std::vector<bool>::pop_back(int)’ 91 | ret.pop_back(0); | ~~~~~~~~~~~~^~~ In file included from /usr/include/c++/11/vector:68, from /usr/include/c++/11/functional:62, from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13, from /usr/include/c++/11/algorithm:74, from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65, from answer.code:3: /usr/include/c++/11/bits/stl_bvector.h:1058:7: note: candidate: ‘void std::vector<bool, _Alloc>::pop_back() [with _Alloc = std::allocator<bool>]’ 1058 | pop_back() | ^~~~~~~~ /usr/include/c++/11/bits/stl_bvector.h:1058:7: note: candidate expects 0 arguments, 1 provided