# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
469120 | kevinxiehk | 열쇠 (IOI21_keys) | C++17 | 357 ms | 91488 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define mp make_pair
#define pb emplace_back
#define fi first
#define se second
using namespace std;
set<int> conn[300005];
set<int> conn2[300005];
stack<int> rec;
pair<int, int> val[300005];
bool instack[300005];
int scc[300005];
int sz[300005];
vector<int> component[300005];
int cnt = 0;
int n, m, t, tt, k = 1;
void dfs(int now) {
val[now] = mp(k, k);
k++;
rec.push(now);
instack[now] = true;
for(auto x: conn[now]) {
if(val[x].fi == 0) {
dfs(x);
}
if(instack[x]) {
val[now].se = min(val[now].se, val[x].se);
}
}
if(val[now].se == val[now].fi) {
cnt++;
while(rec.top() != now) {
instack[rec.top()] = false;
scc[rec.top()] = cnt;
component[cnt].pb(rec.top());
rec.pop();
}
instack[rec.top()] = false;
scc[rec.top()] = cnt;
component[cnt].pb(rec.top());
rec.pop();
}
}
vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) {
n = r.size();
m = u.size();
for(int i = 0; i < m; i++) {
if(r[u[i]] == c[i]) conn[u[i]].insert(v[i]);
if(r[v[i]] == c[i]) conn[v[i]].insert(u[i]);
}
for(int i = 0; i < n; i++) if(val[i].fi == 0) dfs(i);
for(int i = 0; i < n; i++) {
for(auto x: conn[i]) {
if(scc[i] != scc[x]) conn2[scc[i]].insert(scc[x]);
}
}
int mi = n + 5;
for(int i = 1; i <= cnt; i++) if(conn2[i].size() == 0) mi = min(mi, (int)(component[i].size()));
vector<int> ans(r.size(), 0);
for(int i = 1; i <= cnt; i++) {
if(conn2[i].size() == 0 && component[i].size() == mi) {
for(auto x: component[i]) ans[x] = true;
}
}
return ans;
}
컴파일 시 표준 에러 (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... |