Submission #468620

#TimeUsernameProblemLanguageResultExecution timeMemory
468620Moroni213동굴 (IOI13_cave)C++11
Compilation error
0 ms0 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; // Main // int tryCombination(int N, int S[]) // void answer(int N, int S[], int D[]) vector<int>pre,nuevo; int combi[5005]; int NN; int puertas[5005]; int resp[5005]; bool memoria[5005]; int ponercero(int,int,int,int,int[]); int poneruno(int,int,int,int,int[]); void exploreCave(int N) { NN=N; for(int x=0;x<N;x++){ pre.push_back(0); } for(int x=0;x<N;x++){ nuevo=pre; int *arr=&nuevo[0]; int aux; int opcion=tryCombination(N,arr); //cout<<opcion; if(opcion!=x){ aux=ponercero(0,N-1,x,N,arr); //cout<<aux<<" "; memoria[aux]=true; puertas[x]=aux; pre[aux]=0; } else{ aux=poneruno(0,N-1,x,N,arr); memoria[aux]=true; puertas[x]=aux; pre[aux]=1; } } for(int x=0;x<N;x++){ resp[puertas[x]]=x; } int *arr=&pre[0]; answer(N,arr,resp); } int ponercero(int inicio,int fin,int n,int ult,int arreglo[]){ if(inicio>fin)return ult; int mitad=(inicio+fin)/2; for(int x=inicio;x<=mitad;x++){ if(!memoria[x])arreglo[x]=1; } int opcion=tryCombination(NN,arreglo); if(opcion==n){ for(int x=inicio;x<=mitad;x++){ if(!memoria[x])arreglo[x]=0; } //cout<<"Esta en la mitad"; return ponercero(inicio,mitad-1,n,mitad,arreglo); } else{ //cout<<"Esta en el resto"; return ponercero(mitad+1,fin,n,ult,arreglo); } return 0; } int poneruno(int inicio,int fin,int n,int ult,int arreglo[]){ if(inicio>fin)return ult; int mitad=(inicio+fin)/2; for(int x=inicio;x<=mitad;x++){ if(!memoria[x])arreglo[x]=1; } int opcion=tryCombination(NN,arreglo); if(opcion!=n){ for(int x=inicio;x<=mitad;x++){ if(!memoria[x])arreglo[x]=0; } return poneruno(inicio,mitad-1,n,mitad,arreglo); } else{ return poneruno(mitad+1,fin,n,ult,arreglo); } }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:25:35: error: invalid conversion from 'int' to 'int*' [-fpermissive]
   25 |         int opcion=tryCombination(N,arr);
      |                                   ^
      |                                   |
      |                                   int
cave.cpp:25:40: error: too many arguments to function 'int tryCombination(int*)'
   25 |         int opcion=tryCombination(N,arr);
      |                                        ^
In file included from cave.cpp:1:
cave.h:8:5: note: declared here
    8 | int tryCombination(int S[]);
      |     ^~~~~~~~~~~~~~
cave.cpp:45:12: error: invalid conversion from 'int' to 'int*' [-fpermissive]
   45 |     answer(N,arr,resp);
      |            ^
      |            |
      |            int
cave.cpp:45:22: error: too many arguments to function 'void answer(int*, int*)'
   45 |     answer(N,arr,resp);
      |                      ^
In file included from cave.cpp:1:
cave.h:9:6: note: declared here
    9 | void answer(int S[], int D[]);
      |      ^~~~~~
cave.cpp: In function 'int ponercero(int, int, int, int, int*)':
cave.cpp:54:31: error: invalid conversion from 'int' to 'int*' [-fpermissive]
   54 |     int opcion=tryCombination(NN,arreglo);
      |                               ^~
      |                               |
      |                               int
cave.cpp:54:41: error: too many arguments to function 'int tryCombination(int*)'
   54 |     int opcion=tryCombination(NN,arreglo);
      |                                         ^
In file included from cave.cpp:1:
cave.h:8:5: note: declared here
    8 | int tryCombination(int S[]);
      |     ^~~~~~~~~~~~~~
cave.cpp: In function 'int poneruno(int, int, int, int, int*)':
cave.cpp:75:31: error: invalid conversion from 'int' to 'int*' [-fpermissive]
   75 |     int opcion=tryCombination(NN,arreglo);
      |                               ^~
      |                               |
      |                               int
cave.cpp:75:41: error: too many arguments to function 'int tryCombination(int*)'
   75 |     int opcion=tryCombination(NN,arreglo);
      |                                         ^
In file included from cave.cpp:1:
cave.h:8:5: note: declared here
    8 | int tryCombination(int S[]);
      |     ^~~~~~~~~~~~~~