Submission #76175796


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
int qsize = 0;
int q[312345];
void qadjust(int pos) {
for (;;) {
int minpos = pos;
int i;
for (i = 1; i <= 2; i++) {
int c = pos * 2 + i;
if (c < qsize && q[minpos] > q[c]) minpos = c;
}
if (minpos == pos) {
if (pos == 0) return;
pos = (pos - 1) / 2;
} else {
int t = q[minpos];
q[minpos] = q[pos];
q[pos] = t;
pos = minpos;
}
}
}
void qadd(int value) {
q[qsize++] = value;
qadjust(qsize - 1);
}
int qget(void) {
int v;
if (qsize <= 0) exit(72);
v = q[0];
if (--qsize > 0) {
q[0] = q[qsize];
qadjust(0);
}
return v;
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>

int qsize = 0;
int q[312345];

void qadjust(int pos) {
	for (;;) {
		int minpos = pos;
		int i;
		for (i = 1; i <= 2; i++) {
			int c = pos * 2 + i;
			if (c < qsize && q[minpos] > q[c]) minpos = c;
		}
		if (minpos == pos) {
			if (pos == 0) return;
			pos = (pos - 1) / 2;
		} else {
			int t = q[minpos];
			q[minpos] = q[pos];
			q[pos] = t;
			pos = minpos;
		}
	}
}

void qadd(int value) {
	q[qsize++] = value;
	qadjust(qsize - 1);
}

int qget(void) {
	int v;
	if (qsize <= 0) exit(72);
	v = q[0];
	if (--qsize > 0) {
		q[0] = q[qsize];
		qadjust(0);
	}
	return v;
}

int main(void) {
	int Q, i;
	if (scanf("%d", &Q) != 1) return 1;
	for (i = 0; i < Q; i++) {
		int type, h;
		if (scanf("%d%d", &type, &h) != 2) return 1;
		if (type == 1) {
			qadd(h);
		} else if (type == 2) {
			while (qsize > 0 && q[0] <= h) qget();
		}
		printf("%d\n", qsize);
	}
	return 0;
}

Submission Info

Submission Time
Task C - Understory
User mikecat
Language C23 (GCC 14.2.0)
Score 300
Code Size 969 Byte
Status AC
Exec Time 67 ms
Memory 3504 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 13
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_00.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
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 1748 KiB
00_sample_01.txt AC 0 ms 1632 KiB
01_random_00.txt AC 39 ms 1716 KiB
01_random_01.txt AC 43 ms 1684 KiB
01_random_02.txt AC 51 ms 1740 KiB
01_random_03.txt AC 60 ms 1600 KiB
01_random_04.txt AC 56 ms 3504 KiB
01_random_05.txt AC 62 ms 2472 KiB
01_random_06.txt AC 52 ms 2728 KiB
01_random_07.txt AC 67 ms 2732 KiB
01_random_08.txt AC 47 ms 3020 KiB
01_random_09.txt AC 61 ms 2828 KiB
01_random_10.txt AC 47 ms 1668 KiB


2026-05-28 (Thu)
07:52:45 +09:00