제출 #441131

#제출 시각아이디문제언어결과실행 시간메모리
441131lLab_동굴 (IOI13_cave)C++14
컴파일 에러
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> sol(vector<int> &A, int s, int e,int tar){
    if(s>=e) return A;
    int mid = (s+e)/2;

    vector<int> C = A;
    int n = A.size();
    int B[n];
    for(int i=0;i<n;++i){
        B[i] = A[i];
    }
    for(int i=mid;i<=e;++i){
        B[i] = (B[i]+1)%2;
        A[i] = B[i];
    }
    int res = tryCombination(B);
    if(res == -1 || (res > tar && tar != -1)){
        return A;
    }else if(res > tar){
        return sol(A,0,n-1,-1);
    }else{
        vector<int> D = sol(C,mid,e,tar);
        vector<int> E = sol(C,s,mid-1,tar);
        for(int i=0;i<n;++i){
            B[i] = D[i];
        }
        res = tryCombination(B);
        if(res == -1) return D;
        for(int i=0;i<n;++i){
            B[i] = E[i];
        }
        res = tryCombination(B);
        if(res == -1) return E;
        if(res<=tar) return D;
        else return E;
    }
}

void exploreCave(int N) {
    vector<int> A = sol(vector<int> (N,0),0,N-1,-1);
    int B[N];
    for(int i=0;i<N;++i) B[i] = A[i];
    int door[N];
    for(int i=0;i<N;++i){
        B[i] = (B[i]+1)%2;
        door[i] = tryCombination(B);
        B[i] = (B[i]+1)%2;
    }
    answer(B,door);
}

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:43:25: error: cannot bind non-const lvalue reference of type 'std::vector<int>&' to an rvalue of type 'std::vector<int>'
   43 |     vector<int> A = sol(vector<int> (N,0),0,N-1,-1);
      |                         ^~~~~~~~~~~~~~~~~
cave.cpp:5:30: note:   initializing argument 1 of 'std::vector<int> sol(std::vector<int>&, int, int, int)'
    5 | vector<int> sol(vector<int> &A, int s, int e,int tar){
      |                 ~~~~~~~~~~~~~^