| Task: | Course Schedule |
| Sender: | aalto25e_007 |
| Submission time: | 2025-10-05 19:18:29 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.18 s | details |
| #7 | ACCEPTED | 0.18 s | details |
| #8 | ACCEPTED | 0.18 s | details |
| #9 | ACCEPTED | 0.18 s | details |
| #10 | WRONG ANSWER | 0.17 s | details |
| #11 | ACCEPTED | 0.17 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | WRONG ANSWER | 0.00 s | details |
| #14 | ACCEPTED | 0.12 s | details |
| #15 | ACCEPTED | 0.13 s | details |
| #16 | WRONG ANSWER | 0.00 s | details |
| #17 | ACCEPTED | 0.15 s | details |
Code
#include <iostream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;
void dijkstra(const vector<vector<pair<long long,long long>>> &adj, long long start, vector<long long> &dist) {
long long n = adj.size();
dist.assign(n, LLONG_MAX);
vector<bool> processed(n, false);
priority_queue<pair<long long,long long>, vector<pair<long long,long long>>, greater<pair<long long,long long>>> pq;
dist[start] = 0;
pq.push({0, start});
while (!pq.empty()) {
long long a = pq.top().second;
pq.pop();
if (processed[a]) continue;
processed[a] = true;
for (auto [b, w] : adj[a]) {
if (dist[a] + w < dist[b]) {
dist[b] = dist[a] + w;
pq.push({dist[b], b});
}
}
}
}
void topological_sort(const vector<vector<int>> &adj, vector<int> &order) {
int n = adj.size();
vector<int> indegree(n, 0);
for (int u = 0; u < n; u++) {
for (int v : adj[u]) {
indegree[v]++;
}
}
queue<int> q;
for (int i = 0; i < n; i++) {
if (indegree[i] == 0) q.push(i);
}
order.reserve(n);
while (!q.empty()) {
int u = q.front();
q.pop();
order.push_back(u);
for (int v : adj[u]) {
indegree[v]--;
if (indegree[v] == 0) q.push(v);
}
}
if ((int)order.size() != n) {
cout << "IMPOSSIBLE" << endl;
return ;
}
}
int main() {
long long n, m;
cin >> n >> m;
/*vector<vector<pair<long long,long long>>> adj(n);
for (long long i = 0; i < m; i++) {
long long a, b, w;
cin >> a >> b >> w;
a--; b--;
adj[a].push_back({b, w});
}
vector<long long> dist;
dijkstra(adj, 0, dist);
for (long long i = 0; i < n; i++) {
cout << dist[i] << " ";
}*/
vector<vector<int>> adj(n);
for (long long i = 0; i < m; i++) {
long long a, b;
cin >> a >> b;
a--; b--;
adj[a].push_back(b);
}
vector<int> order;
topological_sort(adj, order);
for(size_t i = 0; i < order.size(); i++){
cout << order[i] + 1 << " ";
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 20 5 2 2 4 8 9 6 4 ... |
| correct output |
|---|
| 5 7 10 2 1 8 3 9 6 4 |
| user output |
|---|
| 5 7 10 2 1 8 3 9 6 4 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 20 2 7 1 10 9 5 9 7 ... |
| correct output |
|---|
| 1 8 3 6 10 2 9 4 5 7 |
| user output |
|---|
| 1 8 3 6 10 2 9 4 5 7 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 20 8 5 2 3 10 1 9 1 ... |
| correct output |
|---|
| 4 6 7 9 10 2 8 3 1 5 |
| user output |
|---|
| 4 6 7 9 10 2 8 3 1 5 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 10 20 5 10 10 3 9 10 6 2 ... |
| correct output |
|---|
| 7 8 6 4 2 1 5 9 10 3 |
| user output |
|---|
| 7 8 6 4 2 1 5 9 10 3 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 20 2 9 4 8 9 1 10 6 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 100000 200000 78359 8853 18190 30703 11401 30087 34627 11535 ... |
| correct output |
|---|
| 2 3 8 9 16 18 21 22 27 34 36 4... |
| user output |
|---|
| 2 3 8 9 16 18 21 22 27 34 36 4... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 100000 200000 32395 2098 67067 31866 31867 67167 78488 33397 ... |
| correct output |
|---|
| 9 11 13 16 22 35 37 38 40 44 5... |
| user output |
|---|
| 9 11 13 16 22 35 37 38 40 44 5... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 100000 200000 19035 36947 13730 46121 99449 77790 15626 11731 ... |
| correct output |
|---|
| 1 7 15 17 18 34 38 41 48 49 51... |
| user output |
|---|
| 1 7 15 17 18 34 38 41 48 49 51... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 100000 200000 14188 9709 46541 20871 32203 88809 99879 54779 ... |
| correct output |
|---|
| 6 10 11 16 17 19 21 22 23 28 3... |
| user output |
|---|
| 6 10 11 16 17 19 21 22 23 28 3... |
Test 10
Verdict: WRONG ANSWER
| input |
|---|
| 100000 200000 41882 61162 28138 18053 74649 74863 69760 74508 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE 14 15 36 46 47 51 60 73 75 76 ... |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 100000 199998 1 100000 1 100000 2 100000 2 100000 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 2 2 1 2 2 1 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 13
Verdict: WRONG ANSWER
| input |
|---|
| 6 6 1 2 2 3 4 3 4 5 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE 1 2 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 99999 149997 1 3 3 5 5 7 7 9 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 100000 149998 2 1 3 2 4 3 5 4 ... |
| correct output |
|---|
| 100000 99999 99998 99997 99996... |
| user output |
|---|
| 100000 99999 99998 99997 99996... |
Test 16
Verdict: WRONG ANSWER
| input |
|---|
| 6 6 1 2 1 3 2 4 3 5 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE 1 2 4 |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 100000 200000 1 1 1 1 2 2 2 2 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
