Submission #68645842


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void* x, const void* y) {
int a = *(const int*)x, b = *(const int*)y;
return a < b ? -1 : a > b;
}
int N, M, X, Y;
int ec[1024];
int es[1024][1024];
int tc;
int visited[1024];
int num;
int path[1024];
int dfs(int node) {
int i;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void* x, const void* y) {
	int a = *(const int*)x, b = *(const int*)y;
	return a < b ? -1 : a > b;
}

int N, M, X, Y;
int ec[1024];
int es[1024][1024];

int tc;
int visited[1024];

int num;
int path[1024];

int dfs(int node) {
	int i;
	int found = 0;
	if (visited[node] == tc) return 0;
	visited[node] = tc;
	path[num++] = node;
	if (node == Y) {
		for (i = 0; i < num; i++) {
			printf(" %d" + !i, path[i]);
		}
		putchar('\n');
		found = 1;
	} else {
		for (i = 0; !found && i < ec[node]; i++) {
			found = dfs(es[node][i]);
		}
	}
	num--;
	/* 通ってたどり着けなかったノードは、再探索しない */
	/* visited[node] = 0; */
	return found;
}

int main(void) {
	int T;
	if (scanf("%d", &T) != 1) return 1;
	for (tc = 1; tc <= T; tc++) {
		int i;
		if (scanf("%d%d%d%d", &N, &M, &X, &Y) != 4) return 1;
		memset(ec, 0, sizeof(ec));
		for (i = 0; i < M; i++) {
			int U, V;
			if (scanf("%d%d", &U, &V) != 2) return 1;
			es[U][ec[U]++] = V;
			es[V][ec[V]++] = U;
		}
		for (i = 1; i <= N; i++) {
			if (ec[i] > 0) qsort(es[i], ec[i], sizeof(*es[i]), cmp);
		}
		num = 0;
		dfs(X);
	}
	return 0;
}

/*

辞書順 → とにかく前に強いやつを取ってしまうのが吉

たどり着けるならよい (予想)
だが……たどり着けないならどうかな?

```python:gen.py
N = 300

print(1)
print("%d %d %d %d" % (N, (N - 1) * (N - 2) // 2 + 1, N - 1, N))
for i in range(1, N - 1):
    for j in range(i + 1, N):
        print("%d %d" % (i, j))
print("%d %d" % (N - 1, N))
```

*/

Submission Info

Submission Time
Task E - A Path in A Dictionary
User mikecat
Language C (gcc 12.2.0)
Score 475
Code Size 1674 Byte
Status AC
Exec Time 14 ms
Memory 5772 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 1
AC × 43
Set Name Test Cases
Sample example_00.txt
All example_00.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, hand_09.txt, hand_10.txt, hand_11.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt
Case Name Status Exec Time Memory
example_00.txt AC 1 ms 1620 KiB
hand_00.txt AC 12 ms 2880 KiB
hand_01.txt AC 2 ms 5684 KiB
hand_02.txt AC 13 ms 2920 KiB
hand_03.txt AC 2 ms 5664 KiB
hand_04.txt AC 9 ms 2064 KiB
hand_05.txt AC 14 ms 5660 KiB
hand_06.txt AC 13 ms 5664 KiB
hand_07.txt AC 2 ms 5652 KiB
hand_08.txt AC 13 ms 5748 KiB
hand_09.txt AC 12 ms 5700 KiB
hand_10.txt AC 2 ms 5656 KiB
hand_11.txt AC 1 ms 1656 KiB
random_00.txt AC 1 ms 1696 KiB
random_01.txt AC 1 ms 1696 KiB
random_02.txt AC 1 ms 1808 KiB
random_03.txt AC 1 ms 1720 KiB
random_04.txt AC 1 ms 1828 KiB
random_05.txt AC 1 ms 1820 KiB
random_06.txt AC 1 ms 1964 KiB
random_07.txt AC 1 ms 1888 KiB
random_08.txt AC 1 ms 1912 KiB
random_09.txt AC 2 ms 1892 KiB
random_10.txt AC 3 ms 1876 KiB
random_11.txt AC 4 ms 1848 KiB
random_12.txt AC 1 ms 2132 KiB
random_13.txt AC 1 ms 2124 KiB
random_14.txt AC 1 ms 2128 KiB
random_15.txt AC 5 ms 2208 KiB
random_16.txt AC 7 ms 2256 KiB
random_17.txt AC 10 ms 2128 KiB
random_18.txt AC 1 ms 3656 KiB
random_19.txt AC 1 ms 2184 KiB
random_20.txt AC 13 ms 5460 KiB
random_21.txt AC 2 ms 2280 KiB
random_22.txt AC 12 ms 3336 KiB
random_23.txt AC 12 ms 4172 KiB
random_24.txt AC 2 ms 5580 KiB
random_25.txt AC 2 ms 5644 KiB
random_26.txt AC 14 ms 5772 KiB
random_27.txt AC 13 ms 5600 KiB
random_28.txt AC 13 ms 5716 KiB
random_29.txt AC 13 ms 5572 KiB


2025-08-20 (Wed)
08:01:00 +09:00