Submission #864361

#TimeUsernameProblemLanguageResultExecution timeMemory
864361lalig777Pohlepko (COCI16_pohlepko)C++14
80 / 80
135 ms9024 KiB
#include <iostream> #include <vector> #include <queue> using namespace std; struct info{ int fila; int columna; int nivel; char letra; }; string bfs(int n, int m, vector<vector<char>>tablero){ int nivelactual=0; string s=""; s+=tablero[0][0]; queue<info>cola; vector<vector<bool>>visto(n, vector<bool>(m, false)); info primero; primero.fila=1; primero.columna=0; primero.nivel=1; primero.letra=s[0]; cola.push(primero); primero.fila=0; primero.columna=1; cola.push(primero); while (!cola.empty()){ int i_actual=cola.front().fila; int j_actual=cola.front().columna; if (i_actual==n or j_actual==m or visto[i_actual][j_actual]==true){ cola.pop(); continue; }if (cola.front().nivel!=nivelactual){ nivelactual++; s+='z'; }if (s[nivelactual-1]==cola.front().letra){ if (s[nivelactual]>=tablero[i_actual][j_actual]){ visto[i_actual][j_actual]=true; s[nivelactual]=tablero[i_actual][j_actual]; info casilla; casilla.fila=i_actual+1; casilla.columna=j_actual; casilla.nivel=nivelactual+1; casilla.letra=s[nivelactual]; cola.push(casilla); casilla.fila--; casilla.columna++; cola.push(casilla); } }cola.pop(); }return s; } int main(){ int n, m; cin>>n>>m; vector<vector<char>>tablero(n, vector<char>(m)); for (int i=0; i<n; i++){ for (int j=0; j<m; j++) cin>>tablero[i][j]; }cout<<bfs(n, m, tablero)<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...