# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
805711 | vjudge1 | Split the Attractions (IOI19_split) | C++17 | 1 ms | 276 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "split.h"
#include "bits/stdc++.h"
using namespace std;
vector<int> tama_o;
int actual = 0;
vector<int> respuesta;
vector< vector<int> > lista_de_adyacencia;
vector<int> visitado;
void DFS(int nodo){
visitado[nodo] = 1;
respuesta[nodo] = actual + 1;
tama_o[actual]--;
if(tama_o[actual] == 0) return;
int _ndice = 0;
while(_ndice < lista_de_adyacencia[nodo].size()){
if(!visitado[lista_de_adyacencia[nodo][_ndice]]) DFS(lista_de_adyacencia[nodo][_ndice]);
_ndice++;
}
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q){
tama_o = {a, b, c};
lista_de_adyacencia.assign(n, vector<int>());
int _ndice = 0;
while(_ndice < p.size()){
lista_de_adyacencia[p[_ndice]].push_back(q[_ndice]);
lista_de_adyacencia[q[_ndice]].push_back(p[_ndice]);
_ndice++;
}
visitado.assign(n, 0);
respuesta.assign(n, -1);
DFS(0);
_ndice = 0;
while(respuesta[_ndice] == -1) _ndice++;
actual++;
DFS(_ndice);
_ndice = 0;
while(respuesta[_ndice] == -1) _ndice++;
actual++;
DFS(_ndice);
return respuesta;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |