이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> p, bt;
void init(int k, vector<int> r) {
int n = r.size();
vector<vector<int>> adj(n);
vector<int> d(n);
for (int i = 0; i < n; ++i) {
if (r[i]) {
adj[i].push_back((i + 1) % n);
++d[(i + 1) % n];
}
else {
adj[(i + 1) % n].push_back(i);
++d[i];
}
}
queue<int> q;
for (int i = 0; i < n; ++i) {
if (!d[i]) {
q.push(i);
}
}
int cnt = 0, tm = 0;
p.resize(n);
bt.resize(n);
while (q.size()) {
int s = q.size();
while (s--) {
int u = q.front();
bt[u] = tm;
p[u] = cnt++;
q.pop();
for (int v : adj[u]) {
if (!--d[v]) {
q.push(v);
}
}
}
++tm;
}
}
int compare_plants(int x, int y) {
return bt[x] == bt[y] ? 0 : p[x] > p[y] ? 1 : -1;
}
| # | 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... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |