제출 #919015

#제출 시각아이디문제언어결과실행 시간메모리
919015Gwynbleidd_동굴 (IOI13_cave)C++14
컴파일 에러
0 ms0 KiB
#include "cave.h"

#include <bits/stdc++.h>

using namespace std;

int n;
vector<int> flip, pos;

int comb(vector<int>& a){
    int q[n];
    for(int i=0;i<n;i++) q[i]=a[i];
    return tryCombination(q);
}

void answer(){
    int flip[n], pos[n];
    for(int i=0;i<n;i++) flip[i]=f[i], pos[i]=p[i];
    answer(flip,pos);
}

void dac(vector<int>& a, vector<int>& ind, int last){
    if(ind.size()==1){
        if(last==-1){
            flip[ind[0]]=a[ind[0]];
            a[ind[0]]=1-a[ind[0]];
            p[ind[0]]=comb(a);
        }
        else{
            p[ind[0]]=last;
            flip[ind[0]]=1-a[ind[0]];
        }
    }
    else{
        vector<int> l,r;
        for(int i=0;i<ind.size();i++){
            if(i<ind.size()/2){
                a[i]=1-a[i];
                l.push_back(i);
            }
            else{
                r.push_back(i);
            }
        }
        int x=comb(a);
        if(x==last){
            for(int i=0;i<l.size();i++){
                a[i]=1-a[i];
            }
            dac(a,r,last);
        }
        else{
            dac(a,l,last);
        }
    }
}

void exploreCave(int N) {
    n=N;
    flip.assign(n,-1);
    pos.assign(n,-1);
    vector<int> a(n);
    for(int t=0;t<n;t++){
        for(int i=0;i<n;i++){
            vector<int> ind;
            if(flip[i]!=-1){
                a[i]=flip[i];
            }
            else{
                ind.push_back(i);
                a[i]=0;
            }
        }
        if(!ind.size()){
            break;
        }
        dac(a,comb(a))
    }
    answer();
}

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

cave.cpp: In function 'void answer()':
cave.cpp:18:34: error: 'f' was not declared in this scope
   18 |     for(int i=0;i<n;i++) flip[i]=f[i], pos[i]=p[i];
      |                                  ^
cave.cpp:18:47: error: 'p' was not declared in this scope
   18 |     for(int i=0;i<n;i++) flip[i]=f[i], pos[i]=p[i];
      |                                               ^
cave.cpp: In function 'void dac(std::vector<int>&, std::vector<int>&, int)':
cave.cpp:27:13: error: 'p' was not declared in this scope
   27 |             p[ind[0]]=comb(a);
      |             ^
cave.cpp:30:13: error: 'p' was not declared in this scope
   30 |             p[ind[0]]=last;
      |             ^
cave.cpp:36:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |         for(int i=0;i<ind.size();i++){
      |                     ~^~~~~~~~~~~
cave.cpp:37:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             if(i<ind.size()/2){
      |                ~^~~~~~~~~~~~~
cave.cpp:47:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |             for(int i=0;i<l.size();i++){
      |                         ~^~~~~~~~~
cave.cpp: In function 'void exploreCave(int)':
cave.cpp:74:13: error: 'ind' was not declared in this scope; did you mean 'int'?
   74 |         if(!ind.size()){
      |             ^~~
      |             int
cave.cpp:77:19: error: invalid initialization of non-const reference of type 'std::vector<int>&' from an rvalue of type 'int'
   77 |         dac(a,comb(a))
      |               ~~~~^~~
cave.cpp:22:39: note: in passing argument 2 of 'void dac(std::vector<int>&, std::vector<int>&, int)'
   22 | void dac(vector<int>& a, vector<int>& ind, int last){
      |                          ~~~~~~~~~~~~~^~~