Submission #900088

#TimeUsernameProblemLanguageResultExecution timeMemory
900088vjudge1Land of the Rainbow Gold (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...