Submission #26655779


Source Code Expand

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <numeric>
#include <queue>

int main() {
  int64_t N, M;
  std::cin >> N >> M;
  std::vector<std::vector<int64_t>> graph(N);
  std::vector<int64_t> indegree(N, 0);
  for (int64_t i = 0; i < M ; i++) {
    int64_t a, b;
    std::cin >> a >> b;
    graph.at(a - 1).push_back(b - 1);
    indegree.at(b - 1)++;
  }

  std::priority_queue<int64_t, std::vector<int64_t>, std::greater<int64_t>> heap;
  for (int64_t i = 0; i < N; i++) {
    if (indegree.at(i) == 0) {
      heap.push(i);
    }
  }

  std::vector<int64_t> answer;
  while (!heap.empty()) {
    int64_t node = heap.top();
    heap.pop();

    answer.push_back(node);
    for (int64_t next_node : graph.at(node)) {
      indegree.at(next_node)--;
      if (indegree.at(next_node) == 0) {
        heap.push(next_node);
      }
    }
  }

  if (static_cast<int64_t>(answer.size()) == N) {
    for (int64_t i = 0; i < N; i++) {
      if (i) std::cout << " ";
      std::cout << answer.at(i) + 1;
    }
    std::cout << std::endl;
  } else {
    std::cout << -1 << std::endl;
  }

  return 0;
}

Submission Info

Submission Time
Task D - Restricted Permutation
User fjnkt98
Language C++ (GCC 9.2.1)
Score 400
Code Size 1184 Byte
Status AC
Exec Time 205 ms
Memory 16396 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 22
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt
Case Name Status Exec Time Memory
example_00.txt AC 1 ms 3492 KiB
example_01.txt AC 2 ms 3596 KiB
test_00.txt AC 194 ms 16396 KiB
test_01.txt AC 192 ms 16300 KiB
test_02.txt AC 127 ms 8124 KiB
test_03.txt AC 53 ms 13304 KiB
test_04.txt AC 130 ms 10232 KiB
test_05.txt AC 205 ms 16008 KiB
test_06.txt AC 124 ms 7420 KiB
test_07.txt AC 200 ms 15836 KiB
test_08.txt AC 69 ms 14176 KiB
test_09.txt AC 66 ms 12996 KiB
test_10.txt AC 32 ms 4716 KiB
test_11.txt AC 71 ms 10048 KiB
test_12.txt AC 127 ms 7988 KiB
test_13.txt AC 48 ms 4976 KiB
test_14.txt AC 106 ms 6880 KiB
test_15.txt AC 87 ms 6492 KiB
test_16.txt AC 85 ms 6488 KiB
test_17.txt AC 80 ms 6524 KiB
test_18.txt AC 17 ms 3988 KiB
test_19.txt AC 59 ms 5528 KiB