| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 9379 | dolpang2 | Your life (kriii2_Y) | C++14 | 0 ms | 0 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <vector>
std::vector<bool> visited;
std::vector< std::vector<int> > graph;
void DFS(int u, int V, int count) {
  visited[u] = true;
  for (int i = u + 1; i <= V; i++)
    if (graph[u][i] && !visited[i]) {
      int c = count + 1;
      if (i == V) {
        printf("%d\n", c - 1);
        exit(0);
      }
      DFS(i, V, c);
    }
}
int main() {
  int N = 0;
  int M = 0;
  scanf("%d%d", &N, &M);
  std::vector<int> row;
  for (int i = 0; i < N + 1; ++i) {
    row.push_back(0);
    visited.push_back(false);
  }
  for (int i = 0; i < N + 1; ++i) {
    graph.push_back(row);
  }
  for (int i = 0; i < M; ++i) {
    int x;
    int y;
    scanf("%d%d", &x, &y);
    graph[x][y] = 1;
  }
  DFS(1, N, 0);
}
