提出 #64661407


ソースコード 拡げる

#include <stdio.h>
#include <stdlib.h>

#define MOD_BY 759149
#define MULT 414157

int get_hash(int x, int y) {
	return (int)((((long long)x * MULT + y) % MOD_BY + MOD_BY) % MOD_BY);
}

struct element_s {
	int x, y;
	struct element_s* next;
};

struct element_s* ht[MOD_BY];

void ht_add(int x, int y) {
	int hash = get_hash(x, y);
	struct element_s** p = &ht[hash];
	while (*p != NULL) {
		if ((*p)->x == x && (*p)->y == y) return;
		p = &(*p)->next;
	}
	*p = malloc(sizeof(**p));
	if (*p == NULL) exit(2);
	**p = (struct element_s){ x, y, NULL };
}

int ht_exists(int x, int y) {
	int hash = get_hash(x, y);
	struct element_s* p = ht[hash];
	while (p != NULL) {
		if (p->x == x && p->y == y) return 1;
		p = p->next;
	}
	return 0;
}

int N, R, C;
char S[212345];

int main(void) {
	int dx = 0, dy = 0;
	int i;
	if (scanf("%d%d%d", &N, &R, &C) != 3) return 1;
	if (scanf("%212344s", S) != 1) return 1;
	ht_add(0, 0);
	for (i = 0; i < N; i++) {
		switch (S[i]) {
			case 'N': dy++; break;
			case 'W': dx++; break;
			case 'S': dy--; break;
			case 'E': dx--; break;
		}
		ht_add(dx, dy);
		putchar('0' + ht_exists(C + dx, R + dy));
	}
	putchar('\n');
	return 0;
}

/*

逆にスポーンポイントと高橋君を移動させる

*/

提出情報

提出日時
問題 D - Bonfire
ユーザ mikecat
言語 C (gcc 12.2.0)
得点 425
コード長 1302 Byte
結果 AC
実行時間 15 ms
メモリ 14032 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 63
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.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, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 0 ms 1572 KiB
sample_02.txt AC 1 ms 1544 KiB
sample_03.txt AC 0 ms 1580 KiB
test_01.txt AC 7 ms 6392 KiB
test_02.txt AC 8 ms 6876 KiB
test_03.txt AC 8 ms 6532 KiB
test_04.txt AC 0 ms 1572 KiB
test_05.txt AC 7 ms 5200 KiB
test_06.txt AC 8 ms 6860 KiB
test_07.txt AC 7 ms 5076 KiB
test_08.txt AC 0 ms 1624 KiB
test_09.txt AC 7 ms 6032 KiB
test_10.txt AC 6 ms 4536 KiB
test_11.txt AC 6 ms 4640 KiB
test_12.txt AC 0 ms 1512 KiB
test_13.txt AC 7 ms 5264 KiB
test_14.txt AC 8 ms 6692 KiB
test_15.txt AC 7 ms 5704 KiB
test_16.txt AC 1 ms 1828 KiB
test_17.txt AC 7 ms 5212 KiB
test_18.txt AC 7 ms 5840 KiB
test_19.txt AC 7 ms 5600 KiB
test_20.txt AC 2 ms 3008 KiB
test_21.txt AC 8 ms 6760 KiB
test_22.txt AC 7 ms 4856 KiB
test_23.txt AC 7 ms 5484 KiB
test_24.txt AC 7 ms 6128 KiB
test_25.txt AC 8 ms 9584 KiB
test_26.txt AC 8 ms 9540 KiB
test_27.txt AC 8 ms 9588 KiB
test_28.txt AC 7 ms 9556 KiB
test_29.txt AC 13 ms 13924 KiB
test_30.txt AC 14 ms 13912 KiB
test_31.txt AC 13 ms 13952 KiB
test_32.txt AC 13 ms 13924 KiB
test_33.txt AC 7 ms 9672 KiB
test_34.txt AC 8 ms 9560 KiB
test_35.txt AC 7 ms 9448 KiB
test_36.txt AC 9 ms 9564 KiB
test_37.txt AC 13 ms 13952 KiB
test_38.txt AC 13 ms 13932 KiB
test_39.txt AC 12 ms 14032 KiB
test_40.txt AC 13 ms 13920 KiB
test_41.txt AC 9 ms 7276 KiB
test_42.txt AC 12 ms 12736 KiB
test_43.txt AC 11 ms 13972 KiB
test_44.txt AC 14 ms 13848 KiB
test_45.txt AC 9 ms 10012 KiB
test_46.txt AC 8 ms 6672 KiB
test_47.txt AC 9 ms 10636 KiB
test_48.txt AC 9 ms 7888 KiB
test_49.txt AC 10 ms 12372 KiB
test_50.txt AC 13 ms 12664 KiB
test_51.txt AC 13 ms 11296 KiB
test_52.txt AC 10 ms 10768 KiB
test_53.txt AC 12 ms 11044 KiB
test_54.txt AC 15 ms 13696 KiB
test_55.txt AC 14 ms 13424 KiB
test_56.txt AC 10 ms 12880 KiB
test_57.txt AC 10 ms 12808 KiB
test_58.txt AC 10 ms 11172 KiB
test_59.txt AC 10 ms 10452 KiB
test_60.txt AC 10 ms 9656 KiB