Submission #69915369


Source Code Expand

Copy
#include <stdio.h>
#include <inttypes.h>
int N, Q;
int A[212345];
int query[212345][3];
int64_t sum[212345];
int main(void) {
int i;
int start = 0;
if (scanf("%d%d", &N, &Q) != 2) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d", &A[i]) != 1) return 1;
sum[i] = (i > 0 ? sum[i - 1] : 0) + A[i];
}
for (i = 0; i < Q; i++) {
if (scanf("%d%d", &query[i][0], &query[i][1]) != 2) return 1;
if (query[i][0] == 2 && scanf("%d", &query[i][2]) != 1) return 1;
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <inttypes.h>

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

int64_t sum[212345];

int main(void) {
	int i;
	int start = 0;
	if (scanf("%d%d", &N, &Q) != 2) return 1;
	for (i = 0; i < N; i++) {
		if (scanf("%d", &A[i]) != 1) return 1;
		sum[i] = (i > 0 ? sum[i - 1] : 0) + A[i];
	}
	for (i = 0; i < Q; i++) {
		if (scanf("%d%d", &query[i][0], &query[i][1]) != 2) return 1;
		if (query[i][0] == 2 && scanf("%d", &query[i][2]) != 1) return 1;
	}
	for (i = 0; i < Q; i++) {
		if (query[i][0] == 1) {
			start = (start + query[i][1]) % N;
		} else if (query[i][0] == 2) {
			int l = (query[i][1] - 1 + start) % N;
			int r = (query[i][2] - 1 + start) % N;
			if (l <= r) {
				printf("%" PRId64 "\n", sum[r] - (l > 0 ? sum[l - 1] : 0));
			} else {
				printf("%" PRId64 "\n", sum[r] + sum[N - 1] - sum[l - 1]);
			}
		}
	}
	return 0;
}

Submission Info

Submission Time
Task C - Rotate and Sum Query
User mikecat
Language C (gcc 12.2.0)
Score 350
Code Size 898 Byte
Status AC
Exec Time 82 ms
Memory 8172 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 350 / 350
Status
AC × 2
AC × 22
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, 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
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 1632 KiB
00_sample_01.txt AC 1 ms 1720 KiB
01_random_00.txt AC 1 ms 1720 KiB
01_random_01.txt AC 27 ms 4056 KiB
01_random_02.txt AC 46 ms 4956 KiB
01_random_03.txt AC 27 ms 4224 KiB
01_random_04.txt AC 39 ms 4244 KiB
01_random_05.txt AC 66 ms 6488 KiB
01_random_06.txt AC 37 ms 4032 KiB
01_random_07.txt AC 65 ms 6500 KiB
01_random_08.txt AC 55 ms 5496 KiB
01_random_09.txt AC 65 ms 6488 KiB
01_random_10.txt AC 53 ms 5380 KiB
01_random_11.txt AC 65 ms 6480 KiB
01_random_12.txt AC 45 ms 6324 KiB
01_random_13.txt AC 45 ms 6316 KiB
01_random_14.txt AC 79 ms 7964 KiB
01_random_15.txt AC 82 ms 7940 KiB
01_random_16.txt AC 74 ms 7316 KiB
01_random_17.txt AC 55 ms 6288 KiB
01_random_18.txt AC 57 ms 8172 KiB
01_random_19.txt AC 43 ms 6640 KiB


2025-10-06 (Mon)
07:46:04 +09:00