제출 #900088

#제출 시각아이디문제언어결과실행 시간메모리
900088vjudge1무지개나라 (APIO17_rainbow)C++17
11 / 100
3042 ms1048576 KiB
#include "rainbow.h" #include "bits/stdc++.h" using namespace std; vector< vector<bool> > Grilla; vector< vector<bool> > Visitados; vector< vector<bool> > Cero; void init(int R, int C, int sr, int sc, int M, char *S){ vector<bool> A(C, 0); Grilla.assign(R, A); Visitados.assign(R, A); Cero.assign(R, A); Grilla[sr - 1][sc - 1] = 1; Visitados[sr - 1][sc - 1] = 1; Cero[sr - 1][sc - 1] = 1; for(int i = 0; i < M; i++){ switch(S[i]){ case 'N': sr--; break; case 'S': sr++; break; case 'E': sc++; break; case 'W': sc--; } Grilla[sr - 1][sc - 1] = 1; Visitados[sr - 1][sc - 1] = 1; Cero[sr - 1][sc - 1] = 1; } } vector<int> Modificador_F = {-1, 0, 1, 0}; vector<int> Modificador_C = {0, 1, 0, -1}; void DFS(int Fila, int Columna, int Fila_mayor, int Fila_menor, int Columna_mayor, int Columna_menor){ Visitados[Fila][Columna] = 1; //cout<<Fila + 1<<" "<<Columna + 1<<"\n"; for(int i = 0; i < 4; i++){ int Nueva_fila = Fila + Modificador_F[i]; int Nueva_columna = Columna + Modificador_C[i]; if(Nueva_fila >= Fila_menor and Nueva_fila <= Fila_mayor and Nueva_columna >= Columna_menor and Nueva_columna <= Columna_mayor and Visitados[Nueva_fila][Nueva_columna] == 0) DFS(Nueva_fila, Nueva_columna, Fila_mayor, Fila_menor, Columna_mayor, Columna_menor); } } int colour(int ar, int ac, int br, int bc){ int Respuesta = 0; for(int Fila = ar - 1; Fila < br; Fila++){ for(int Columna = ac - 1; Columna < bc; Columna++){ if(Visitados[Fila][Columna] == 0){ Respuesta++; DFS(Fila, Columna, br - 1, ar - 1, bc - 1, ac - 1); } } } Visitados = Cero; return Respuesta; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...