Submission #70169278


Source Code Expand

Copy
#include <stdio.h>
#define BIT_MAX 1123456
int bit_table[BIT_MAX];
void bit_add(int pos, int value) {
pos++;
while (pos <= BIT_MAX) {
bit_table[pos - 1] += value;
pos += pos & (-pos);
}
}
int bit_sum(int pos) {
int sum = 0;
pos++;
while (pos > 0) {
sum += bit_table[pos - 1];
pos -= pos & (-pos);
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>

#define BIT_MAX 1123456

int bit_table[BIT_MAX];

void bit_add(int pos, int value) {
	pos++;
	while (pos <= BIT_MAX) {
		bit_table[pos - 1] += value;
		pos += pos & (-pos);
	}
}

int bit_sum(int pos) {
	int sum = 0;
	pos++;
	while (pos > 0) {
		sum += bit_table[pos - 1];
		pos -= pos & (-pos);
	}
	return sum;
}

int N, Q;
int X[212345], Y[212345];

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

	for (i = 1; i <= N; i++) {
		bit_add(i, 1);
	}
	for (i = 0; i < Q; i++) {
		if (X[i] > cut) {
			int ans = bit_sum(X[i]) - bit_sum(cut);
			bit_add(Y[i], ans);
			cut = X[i];
			printf("%d\n", ans);
		} else {
			puts("0");
		}
	}

	return 0;
}

Submission Info

Submission Time
Task C - Upgrade Required
User mikecat
Language C (gcc 12.2.0)
Score 300
Code Size 831 Byte
Status AC
Exec Time 54 ms
Memory 7224 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 1
AC × 26
Set Name Test Cases
Sample sample_01.txt
All hand_01.txt, hand_02.txt, hand_03.txt, sample_01.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
Case Name Status Exec Time Memory
hand_01.txt AC 48 ms 7184 KiB
hand_02.txt AC 49 ms 7212 KiB
hand_03.txt AC 52 ms 7100 KiB
sample_01.txt AC 1 ms 1644 KiB
test_01.txt AC 1 ms 1776 KiB
test_02.txt AC 47 ms 7116 KiB
test_03.txt AC 46 ms 7064 KiB
test_04.txt AC 47 ms 7116 KiB
test_05.txt AC 49 ms 7112 KiB
test_06.txt AC 50 ms 7128 KiB
test_07.txt AC 50 ms 7136 KiB
test_08.txt AC 49 ms 7220 KiB
test_09.txt AC 49 ms 7132 KiB
test_10.txt AC 21 ms 3332 KiB
test_11.txt AC 21 ms 3340 KiB
test_12.txt AC 21 ms 3236 KiB
test_13.txt AC 21 ms 3220 KiB
test_14.txt AC 49 ms 7196 KiB
test_15.txt AC 44 ms 7200 KiB
test_16.txt AC 47 ms 7080 KiB
test_17.txt AC 46 ms 7132 KiB
test_18.txt AC 44 ms 7116 KiB
test_19.txt AC 47 ms 7080 KiB
test_20.txt AC 54 ms 7064 KiB
test_21.txt AC 51 ms 7224 KiB
test_22.txt AC 45 ms 7112 KiB


2025-10-16 (Thu)
05:18:33 +09:00