Submission #1299398

#TimeUsernameProblemLanguageResultExecution timeMemory
1299398TrinhKhanhDung동굴 (IOI13_cave)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;

int tryCombination(int S[]){
    int n = sizeof(S) / 2;
    cerr << n << '\n';
    for(int i = 0; i < n; i++){
        cout << S[i] << ' ';
    }
    cout << endl;
    int x; cin >> x;
    return x;
}

void answer(int S[], int D[]){
    int n = sizeof(S) / 2;
    for(int i = 0; i < n; i++){
        cout << S[i] << ' ';
    }
    cout << endl;
    for(int i = 0; i < n; i++){
        cout << D[i] << ' ';
    }
    cout << endl;
}

void exploreCave(int n){
    int S[n], D[n];
    for(int i = 0; i < n; i++){
        S[i] = 0;
        D[i] = -1;
    }
    vector<int> a(n);
    iota(a.begin(), a.end(), 0);
    for(int t = 0; t < n; t++){
        for(int x: a){
            S[x] = 0;
        }
        int x = tryCombination(S);
        if(x != -1 && x <= t){
            for(int x: a){
                S[x] = 1;
            }
        }
        int l = 0, r = (int)a.size() - 1;
        while(l < r){
            int m = (l + r) >> 1;
            for(int i = l; i <= m; i++){
                S[a[i]] = !S[a[i]];
            }
            int x = tryCombination(S);
            if(x != -1 && x <= t){
                for(int i = l; i <= m; i++){
                    S[a[i]] = !S[a[i]];
                }
                r = m;
            }
            else{
                l = m + 1;
            }
        }
        x = a[r];
        D[t] = x;
        vector<int> b;
        for(int y: a){
            if(y != x){
                b.push_back(y);
            }
        }
        a = b;
    }
    answer(S, D);
}

//int main(){
//    ios_base::sync_with_stdio(0); cin.tie(0);
//
//    exploreCave(4);
//
//    return 0;
//}

Compilation message (stderr)

cave.cpp: In function 'int tryCombination(int*)':
cave.cpp:6:20: warning: 'sizeof' on array function parameter 'S' will return size of 'int*' [-Wsizeof-array-argument]
    6 |     int n = sizeof(S) / 2;
      |                   ~^~
cave.cpp:5:24: note: declared here
    5 | int tryCombination(int S[]){
      |                    ~~~~^~~
cave.cpp: In function 'void answer(int*, int*)':
cave.cpp:17:20: warning: 'sizeof' on array function parameter 'S' will return size of 'int*' [-Wsizeof-array-argument]
   17 |     int n = sizeof(S) / 2;
      |                   ~^~
cave.cpp:16:17: note: declared here
   16 | void answer(int S[], int D[]){
      |             ~~~~^~~
/usr/bin/ld: /tmp/ccUhHOt5.o: in function `answer':
grader.c:(.text+0x0): multiple definition of `answer'; /tmp/ccT7WD41.o:cave.cpp:(.text+0x180): first defined here
/usr/bin/ld: /tmp/ccUhHOt5.o: in function `tryCombination':
grader.c:(.text+0x80): multiple definition of `tryCombination'; /tmp/ccT7WD41.o:cave.cpp:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status