Submission #9395

# Submission time Handle Problem Language Result Execution time Memory
9395 2014-09-28T06:06:22 Z jwvg0425 Your life (kriii2_Y) C++
1 / 4
16 ms 262144 KB
#include<stdio.h>
#include<vector>
#include<queue>

std::vector<int> route[100000];
int length[100000];

int main(void)
{
	std::queue<int> queue;
	int N, M, x, y, min = -1;

	scanf("%d %d", &N, &M);

	for (int i = 0; i < N; i++)
	{
		route[i].reserve(M);
	}

	for (int i = 0; i < M; i++)
	{
		scanf("%d %d", &x, &y);
		route[x - 1].push_back(y - 1);
	}
	queue.push(0);

	for (int l = 0; !queue.empty(); l++)
	{
		int size = queue.size();

		for (int i = 0; i < size; i++)
		{
			int n = queue.front();
			queue.pop();

			if (length[n] != 0 && length[n] < l)
			{
				continue;
			}

			length[n] = l;
			if (n == N - 1)
			{
				min = l;
				goto END;
			}

			for (int j = 0; j < route[n].size(); j++)
			{
				queue.push(route[n][j]);
			}
		}
	}
END:
	printf("%d", min);
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3972 KB Output is correct
2 Correct 0 ms 3972 KB Output is correct
3 Correct 0 ms 3972 KB Output is correct
4 Correct 0 ms 3972 KB Output is correct
5 Correct 0 ms 3972 KB Output is correct
6 Correct 0 ms 3972 KB Output is correct
7 Correct 0 ms 3972 KB Output is correct
8 Correct 0 ms 3972 KB Output is correct
9 Correct 0 ms 3972 KB Output is correct
10 Correct 16 ms 43172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3972 KB Output is correct
2 Memory limit exceeded 0 ms 262144 KB Memory limit exceeded
3 Halted 0 ms 0 KB -