이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vii;
vector<vector<pair<int,int>>> g;
vector<int> recorrido;
vector<int> vis;
bool ya=false;
void dfs(int u, int pist){
vis[u]=true;
for(auto vv: g[u]){
if(!vis[vv.first]){
if(ya==true) recorrido.push_back(vv.second);
if(vv.second==pist){
ya=true;
}
dfs(vv.first,pist);
if(ya==true) recorrido.pop_back();
}
}
}
variant<bool,vector<int>> find_journey(int n, int m, vector<int> u, vector<int> v){
vi check(1001);
vector<pair<int,int>> p;
g.assign(n+1,p);
vis.assign(n+1,0);
bool ban=false;
int pistacho=-1;
for(int i=0; i<m; i++){
check[u[i]]++;
if(check[u[i]]>=3){
ban=true;
pistacho=min(pistacho,u[i]);
}
}
if(ban==false){
return false;
}
for(int i=0; i<m; i++){
g[u[i]].push_back({v[i],i});
}
if(pistacho!=0){
dfs(0,pistacho);
}
int a=-1,b=-1,c=-1,d=-1;
int peanut1=-1, peanut2=-1;
for(int i=0; i<m; i++){
if(u[i]==pistacho){
if(peanut1==-1){
a=i;
peanut1=v[i];
}else{
b=i;
peanut2=v[i];
break;
}
}
}
for(int i=0; i<m; i++){
if(u[i]==peanut1){
if(v[i]==0){
c=i;
break;
}
}
}
for(int i=0; i<m; i++){
if(u[i]==peanut2){
if(v[i]==0){
d=i;
break;
}
}
}
vector<int> x(8);
x={a,c,b,d,c,a,d,b};
for(int i=0; i<8; i++){
recorrido.push_back(x[i]);
}
return recorrido;
}
# | 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... |