Submission #1199103

#TimeUsernameProblemLanguageResultExecution timeMemory
1199103pensiveUnscrambling a Messy Bug (IOI16_messy)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "messy.h"

using namespace std;
#define ll long long
#define REP(a,i,n) for (ll i=a;i<n;i++)

vector<int> sagot;

int adds(int n, int lo, int hi) {
    if (lo==hi) return;
    int mid = (lo+hi)/2;
    string s = string(n, '1');
    REP(lo, i, hi+1) s[i]='0';
    REP(lo, i, mid+1) {
        s[i]='1';
        add_element(s);
        s[i] = '0';
    }
    adds(n, lo, mid); adds(n, mid+1, hi);
}

void solve(int n, vector<int> can, int lo, int hi) {
    if (hi-lo==0) {
        sagot[lo] = can[0];
        return;
    }
    vector<int> left, right;
    string s = string(n, '1');
    REP(auto u : can) {
        s[i] = '0';
    }
    REP(auto u: can) {
        s[i]='1';
        if (check_element(s)) {
            left.push_back(u);
        }
        else right.push_back(u);
        s[i]='0';
    }
    int mid = (lo+hi)/2;
    solve(n, left, lo, mid); solve(n, right, mid+1, hi);
}

vector<int> restore_permutation(int n, int w, int r) {
    sagot.resize(n);
    adds(n, 0, n-1);
    compile_set();
    vector<int> cans;
    REP(0, i, n) {
        cans.push_back(i);
    }
    solve(n, cans, 0, n-1);
    return sagot;
}

Compilation message (stderr)

messy.cpp:30:21: error: macro "REP" requires 3 arguments, but only 1 given
   30 |     REP(auto u : can) {
      |                     ^
messy.cpp:6: note: macro "REP" defined here
    6 | #define REP(a,i,n) for (ll i=a;i<n;i++)
      | 
messy.cpp:33:20: error: macro "REP" requires 3 arguments, but only 1 given
   33 |     REP(auto u: can) {
      |                    ^
messy.cpp:6: note: macro "REP" defined here
    6 | #define REP(a,i,n) for (ll i=a;i<n;i++)
      | 
messy.cpp: In function 'int adds(int, int, int)':
messy.cpp:11:17: error: return-statement with no value, in function returning 'int' [-fpermissive]
   11 |     if (lo==hi) return;
      |                 ^~~~~~
messy.cpp: In function 'void solve(int, std::vector<int>, int, int)':
messy.cpp:30:5: error: 'REP' was not declared in this scope
   30 |     REP(auto u : can) {
      |     ^~~
messy.cpp:33:8: error: expected ';' before '{' token
   33 |     REP(auto u: can) {
      |        ^             ~
      |        ;
messy.cpp: In function 'int adds(int, int, int)':
messy.cpp:21:1: warning: control reaches end of non-void function [-Wreturn-type]
   21 | }
      | ^
messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~