제출 #137372

#제출 시각아이디문제언어결과실행 시간메모리
137372nekiUnscrambling a Messy Bug (IOI16_messy)C++14
컴파일 에러
0 ms0 KiB
#include "messy.h"

#include <bits/stdc++.h>

using namespace std;
int n;
vector<int> ans;

void set(int l, int r){
    if(l+1==r) return;
    string ss(n, '1'), can(r-l, '0');
    loop(i, l, (l+r)/2){
        auto ts=ss;ts.replace(l, can.length(), can);
        ts[i]='1';
        add_element(ts);
    }
    set(l, (l+r)/2);set((l+r)/2, r);
}

void guess(int l, int r){
    if(l+1==r) return;
    string ss(n, '1');
    loop(i, l, r) ss[ans[i]]='0';
    vector<int> le, re;
    loop(i, l, r){
        auto ts=ss;
        ts[ans[i]]='1';
        if(check_element(ts)) le.push_back(ans[i]);
        else re.push_back(ans[i]);
    }
    loop(i, l, (l+r)/2) ans[i]=le[i-l];
    loop(i, (l+r)/2, r) ans[i]=re[i-(l+r)/2];
    guess(l, (l+r)/2);guess((l+r)/2, r);
}

vector<int> restore_permutation(int N, int w, int r) {
    n=N;
    set(0, n)
    compile_set();
    ans.resize(n);
    loop(i, 0, n) ans[i]=i;
    guess(0, n);
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

messy.cpp: In function 'void set(int, int)':
messy.cpp:12:10: error: 'i' was not declared in this scope
     loop(i, l, (l+r)/2){
          ^
messy.cpp:12:5: error: 'loop' was not declared in this scope
     loop(i, l, (l+r)/2){
     ^~~~
messy.cpp:12:5: note: suggested alternative: 'logl'
     loop(i, l, (l+r)/2){
     ^~~~
     logl
messy.cpp:17:5: error: reference to 'set' is ambiguous
     set(l, (l+r)/2);set((l+r)/2, r);
     ^~~
messy.cpp:9:6: note: candidates are: void set(int, int)
 void set(int l, int r){
      ^~~
In file included from /usr/include/c++/7/set:61:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:87,
                 from messy.cpp:3:
/usr/include/c++/7/bits/stl_set.h:93:11: note:                 template<class _Key, class _Compare, class _Alloc> class std::set
     class set
           ^~~
messy.cpp:17:21: error: reference to 'set' is ambiguous
     set(l, (l+r)/2);set((l+r)/2, r);
                     ^~~
messy.cpp:9:6: note: candidates are: void set(int, int)
 void set(int l, int r){
      ^~~
In file included from /usr/include/c++/7/set:61:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:87,
                 from messy.cpp:3:
/usr/include/c++/7/bits/stl_set.h:93:11: note:                 template<class _Key, class _Compare, class _Alloc> class std::set
     class set
           ^~~
messy.cpp: In function 'void guess(int, int)':
messy.cpp:23:10: error: 'i' was not declared in this scope
     loop(i, l, r) ss[ans[i]]='0';
          ^
messy.cpp:23:5: error: 'loop' was not declared in this scope
     loop(i, l, r) ss[ans[i]]='0';
     ^~~~
messy.cpp:23:5: note: suggested alternative: 'logl'
     loop(i, l, r) ss[ans[i]]='0';
     ^~~~
     logl
messy.cpp: In function 'std::vector<int> restore_permutation(int, int, int)':
messy.cpp:38:5: error: reference to 'set' is ambiguous
     set(0, n)
     ^~~
messy.cpp:9:6: note: candidates are: void set(int, int)
 void set(int l, int r){
      ^~~
In file included from /usr/include/c++/7/set:61:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:87,
                 from messy.cpp:3:
/usr/include/c++/7/bits/stl_set.h:93:11: note:                 template<class _Key, class _Compare, class _Alloc> class std::set
     class set
           ^~~
messy.cpp:41:10: error: 'i' was not declared in this scope
     loop(i, 0, n) ans[i]=i;
          ^
messy.cpp:41:5: error: 'loop' was not declared in this scope
     loop(i, 0, n) ans[i]=i;
     ^~~~
messy.cpp:41:5: note: suggested alternative: 'logl'
     loop(i, 0, n) ans[i]=i;
     ^~~~
     logl