Submission #66008437


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
int N, M, Q;
int query[212345][3];
struct kengen_s {
int user, page;
};
int cmp(const void* x, const void* y) {
struct kengen_s a = *(const struct kengen_s*)x, b = *(const struct kengen_s*)y;
if (a.user != b.user) return a.user < b.user ? -1 : 1;
return a.page < b.page ? -1 : a.page > b.page;
}
int zac = 0;
struct kengen_s zal[212345];
char is_ok[212345];
char is_allok[212345];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>

int N, M, Q;
int query[212345][3];

struct kengen_s {
	int user, page;
};

int cmp(const void* x, const void* y) {
	struct kengen_s a = *(const struct kengen_s*)x, b = *(const struct kengen_s*)y;
	if (a.user != b.user) return a.user < b.user ? -1 : 1;
	return a.page < b.page ? -1 : a.page > b.page;
}

int zac = 0;
struct kengen_s zal[212345];

char is_ok[212345];
char is_allok[212345];

int get_id(int user, int page) {
	struct kengen_s query = { user, page };
	int l = 0, r = zac - 1;
	while (l <= r) {
		int m = l + (r - l) / 2;
		int c = cmp(&zal[m], &query);
		if (c == 0) return m;
		if (c < 0) l = m + 1; else r = m - 1;
	}
	return zac;
}

int main(void) {
	int i;
	int zac_raw = 0;
	if (scanf("%d%d%d", &N, &M, &Q) != 3) return 1;
	for (i = 1; i <= Q; i++) {
		if (scanf("%d%d", &query[i][0], &query[i][1]) != 2) return 1;
		if (query[i][0] != 2) {
			if (scanf("%d", &query[i][2]) != 1) return 1;
		}
	}

	/* 座標圧縮 */
	for (i = 1; i <= Q; i++) {
		if (query[i][0] == 1) {
			zal[zac_raw++] = (struct kengen_s){ query[i][1], query[i][2] };
		}
	}
	qsort(zal, zac_raw, sizeof(*zal), cmp);
	zac = zac_raw > 0;
	for (i = 1; i < zac_raw; i++) {
		if (zal[zac - 1].user != zal[i].user || zal[zac - 1].page != zal[i].page) {
			zal[zac++] = zal[i];
		}
	}

	for (i = 1; i <= Q; i++) {
		switch (query[i][0]) {
			case 1:
				{
					int id = get_id(query[i][1], query[i][2]);
					if (id >= zac) {
						puts("ERROR!!!!!");
						return 42;
					}
					is_ok[id] = 1;
				}
				break;
			case 2:
				is_allok[query[i][1]] = 1;
				break;
			case 3:
				{
					int id = get_id(query[i][1], query[i][2]);
					puts(is_allok[query[i][1]] || (id < zac && is_ok[id]) ? "Yes" : "No");
				}
				break;
		}
	}

	return 0;
}

Submission Info

Submission Time
Task C - 403 Forbidden
User mikecat
Language C (gcc 12.2.0)
Score 300
Code Size 1852 Byte
Status AC
Exec Time 75 ms
Memory 5520 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 43
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 0 ms 1628 KB
00_sample_02.txt AC 1 ms 1504 KB
01_random_01.txt AC 42 ms 4908 KB
01_random_02.txt AC 50 ms 5172 KB
01_random_03.txt AC 52 ms 5520 KB
01_random_04.txt AC 26 ms 3916 KB
01_random_05.txt AC 47 ms 4852 KB
01_random_06.txt AC 56 ms 5248 KB
01_random_07.txt AC 59 ms 5320 KB
01_random_08.txt AC 27 ms 3828 KB
01_random_09.txt AC 53 ms 4792 KB
01_random_10.txt AC 65 ms 5164 KB
01_random_11.txt AC 69 ms 5476 KB
01_random_12.txt AC 29 ms 3892 KB
01_random_13.txt AC 50 ms 4956 KB
01_random_14.txt AC 60 ms 5172 KB
01_random_15.txt AC 64 ms 5472 KB
01_random_16.txt AC 28 ms 3888 KB
01_random_17.txt AC 52 ms 4928 KB
01_random_18.txt AC 64 ms 5056 KB
01_random_19.txt AC 68 ms 5432 KB
01_random_20.txt AC 28 ms 3968 KB
01_random_21.txt AC 55 ms 4944 KB
01_random_22.txt AC 68 ms 5200 KB
01_random_23.txt AC 73 ms 5456 KB
01_random_24.txt AC 30 ms 3980 KB
01_random_25.txt AC 54 ms 4908 KB
01_random_26.txt AC 66 ms 5052 KB
01_random_27.txt AC 69 ms 5384 KB
01_random_28.txt AC 32 ms 4076 KB
01_random_29.txt AC 55 ms 4900 KB
01_random_30.txt AC 66 ms 5164 KB
01_random_31.txt AC 71 ms 5320 KB
01_random_32.txt AC 33 ms 4168 KB
01_random_33.txt AC 59 ms 4948 KB
01_random_34.txt AC 70 ms 5176 KB
01_random_35.txt AC 75 ms 5376 KB
01_random_36.txt AC 35 ms 4172 KB
02_handmade_01.txt AC 0 ms 1568 KB
02_handmade_02.txt AC 1 ms 1620 KB
02_handmade_03.txt AC 67 ms 5444 KB
02_handmade_04.txt AC 66 ms 5376 KB
02_handmade_05.txt AC 52 ms 4840 KB


2025-05-21 (Wed)
04:17:41 +09:00