이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
using namespace std;
const int MOD = 1e9 + 7;
const int BUF_SZ = 1 << 15;
inline namespace Input {
char buf[BUF_SZ];
int pos;
int len;
char next_char() {
if (pos == len) {
pos = 0;
len = (int)fread(buf, 1, BUF_SZ, stdin);
if (!len) {
return EOF;
}
}
return buf[pos++];
}
int read_int() {
int x;
char ch;
int sgn = 1;
while (!isdigit(ch = next_char())) {
if (ch == '-') {
sgn *= -1;
}
}
x = ch - '0';
while (isdigit(ch = next_char())) {
x = x * 10 + (ch - '0');
}
return x * sgn;
}
} // namespace Input
inline namespace Output {
char buf[BUF_SZ];
int pos;
void flush_out() {
fwrite(buf, 1, pos, stdout);
pos = 0;
}
void write_char(char c) {
if (pos == BUF_SZ) {
flush_out();
}
buf[pos++] = c;
}
void write_int(int x) {
static char num_buf[100];
if (x < 0) {
write_char('-');
x *= -1;
}
int len = 0;
for (; x >= 10; x /= 10) {
num_buf[len++] = (char)('0' + (x % 10));
}
write_char((char)('0' + x));
while (len) {
write_char(num_buf[--len]);
}
write_char('\n');
}
// auto-flush output when program exits
void init_output() { assert(atexit(flush_out) == 0); }
} // namespace Output
int vised[500001];
int vis[500001];
vector<pair<int,int>>adj[500001];
stack<int> s;
vector<vector<int>> all;
int str= 0;
void dfs(int i){
s.push(i);
if(vis[i]){
vector<int>a;a.push_back(s.top());
s.pop();
while(s.top()!=i){
a.push_back(s.top());
s.pop();
}
all.push_back(a);
str = a.size()-1;
return;
}
vis[i] =1;
for(auto j:adj[i]){
if(vised[j.second])continue;
vised[j.second] = 1;
dfs(j.first);
if(str){
vis[i] =0;
str--;
return ;
}
}
vis[i] = 0;
if(s.size())s.pop();
}
signed main(){
init_output();
int n = read_int(),m=read_int();
for(int i = 0;i<m;i++){
int a=read_int(),b=read_int();
adj[a].push_back({b,i});
adj[b].push_back({a,i});
}
for(int i = 1;i<=n;i++){
dfs(i);
}
for(auto i:all){
for(auto j:i){write_int(j);write_char(' ');}
write_char('\n');
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |