結果

問題 No.1647 Travel in Mitaru city 2
ユーザー ygussanyygussany
提出日時 2021-08-01 09:00:35
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 1,129 bytes
コンパイル時間 235 ms
コンパイル使用メモリ 30,336 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-03 16:09:09
合計ジャッジ時間 9,029 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 AC 1 ms
6,820 KB
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
testcase_32 WA -
testcase_33 WA -
testcase_34 WA -
testcase_35 WA -
testcase_36 WA -
testcase_37 WA -
testcase_38 WA -
testcase_39 WA -
testcase_40 WA -
testcase_41 WA -
testcase_42 WA -
testcase_43 AC 1 ms
6,820 KB
testcase_44 AC 1 ms
6,820 KB
testcase_45 WA -
testcase_46 WA -
testcase_47 WA -
testcase_48 WA -
testcase_49 WA -
testcase_50 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>

typedef struct List {
	struct List *next;
	int v;
} list;

int main()
{
	int i, H, W, N, x[100001], y[100001], num[2][100001] = {};
	list *adj[100001] = {}, d[100001], *p;
	scanf("%d %d %d", &H, &W, &N);
	for (i = 1; i <= N; i++) {
		scanf("%d %d", &(x[i]), &(y[i]));
		num[0][x[i]]++;
		num[1][y[i]]++;
		d[i].v = y[i];
		d[i].next = adj[x[i]];
		adj[x[i]] = &(d[i]);
	}
	
	int j, k, l;
	for (i = 1; i <= H; i++) {
		if (num[0][i] <= 1) continue;
		for (p = adj[i]; p != NULL; p = p->next) if (num[1][p->v] >= 2) break;
		if (p == NULL) continue;
		else j = p->v;
		for (p = p->next; p != NULL; p = p->next) if (num[1][p->v] >= 2) break;
		if (p == NULL) continue;
		else k = p->v;
		break;
	}
	if (i > H) printf("-1\n");
	else {
		printf("4\n");
		for (l = 1; l <= N; l++) if (x[l] != i && y[l] == j) break;
		printf("%d", l);
		for (l = 1; l <= N; l++) if (x[l] == i && y[l] == j) break;
		printf(" %d", l);
		for (l = 1; l <= N; l++) if (x[l] == i && y[l] == k) break;
		printf(" %d", l);
		for (l = 1; l <= N; l++) if (x[l] != i && y[l] == k) break;
		printf(" %d\n", l);
	}
	fflush(stdout);
	return 0;
}
0