# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
650803 | groshi | 어르신 집배원 (BOI14_postmen) | C++17 | 400 ms | 83452 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<iostream>
#include<vector>
#include<utility>
#include<unordered_map>
#include<set>
using namespace std;
int byla[1000000];
int odw[1000000];
set<pair<int,int> > secik;
struct wi{
vector<pair<int,int> > Q;
int odw=0;
int wyszlam=0;
}*w;
vector<int> stos,wynik;
int kiedy=1;
int wzielam=0;
int dokad=0;
bool czy[1000000];
void dfs(int x,int ojc)
{
//cout<<x<<" "<<ojc<<"\n";
stos.push_back(x);
w[x].odw=kiedy;
for(int i=0;i<w[x].Q.size();i++)
{
//cout<<"zdycham\n";
int pom=w[x].Q[i].first;
int ktora=w[x].Q[i].second;
while(czy[ktora]==1)
{
swap(w[x].Q[i],w[x].Q.back());
w[x].Q.pop_back();
if(i>=w[x].Q.size())
break;
pom=w[x].Q[i].first;
ktora=w[x].Q[i].second;
}
//cout<<"zdycham 2\n";
if(i>=w[x].Q.size())
break;
if(pom==ojc)
continue;
if(w[pom].odw==kiedy && w[pom].wyszlam==kiedy)
continue;
if(w[pom].odw!=kiedy)
{
dfs(pom,x);
if(dokad==0)
continue;
czy[ktora]=1;
cout<<stos.back()<<" ";
if(dokad!=x)
stos.pop_back();
if(dokad==x)
{
cout<<"\n";
dokad=0;
//cout<<"tako\n";
continue;
}
w[x].wyszlam=kiedy;
//cout<<"wychodze z "<<x<<"\n";
return;
}
//cout<<"bede chciec znalezc cykl od "<<x<<" do "<<pom<<"\n";
czy[ktora]=1;
cout<<stos.back()<<" ";
dokad=pom;
stos.pop_back();
w[x].wyszlam=kiedy;
//cout<<"umieram\n";
return;
}
w[x].wyszlam=kiedy;
stos.pop_back();
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m,x,y;
cin>>n>>m;
w=new wi[n+3];
for(int i=0;i<m;i++)
{
cin>>x>>y;
w[x].Q.push_back({y,i});
w[y].Q.push_back({x,i});
}
for(int i=1;i<=n;i++)
{
kiedy++;
dfs(i,0);
}
return 0;
}
컴파일 시 표준 에러 (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... |