Submission #69679304
Source Code Expand
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using STR = System.String;
using INT = System.Int64;
using DEC = System.Double;
class Program
{
public static IO IO = new IO();
static void Main(string[] args)
{
INT[] w = IO.I(' ');
INT N = w[0];
INT Q = w[1];
INT[] A = IO.I(' ');
INT front = 0;
INT[,] memo = new INT[N, N];
INT total = A.Sum();
for (INT i = 0; i < N; i++)
{
memo[i, (i - 1 + N) % N] = total;
for (INT j = (i - 1 + N - 1) % N; (j + N) % N != i; j--)
{
memo[i, (j + N) % N] = memo[i, (j + 1 + N) % N] - A[(j + 1 + N) % N];
}
memo[i, i] = A[i];
}
for (INT i = 0; i < Q; i++)
{
w = IO.I(' ');
if (w[0] == 1)
{
front += w[1];
front %= N;
}
else
{
IO.W(memo[(front + w[1] - 1) % N, (front + w[2] - 1) % N]);
}
}
IO.F();
}
}
public class IO
{
private const int WMAX = 1000;
private StringBuilder SB = new StringBuilder();
private T R<T>(Func<STR, T> f) { return f(Console.ReadLine()); }
private T[] R<T>(Func<STR, T> f, char c) { return S().Split(c).Select(f).ToArray(); }
private T[] R<T>(Func<STR, T> f, INT l) { T[] r = new T[l]; for (INT i = 0; i < l; i++) { r[i] = R(f); } return r; }
private T[][] R<T>(Func<STR, T> f, INT l, char c) { T[][] r = new T[l][]; for (INT i = 0; i < l; i++) { r[i] = R<T>(f, c); } return r; }
private void W<T>(Func<T, STR> f, T v, bool lf = true) { SB.Append(f(v)); if (lf) { SB.Append('\n'); } if (SB.Length >= WMAX) { F(); } }
public STR S() { return R(s => s); }
public STR[] S(char c) { return R(s => s, c); }
public STR[] S(INT l) { return R(s => s, l); }
public STR[][] S(INT l, char c) { return R(s => s, l, c); }
public INT I() { return R(INT.Parse); }
public INT[] I(char c) { return R(INT.Parse, c); }
public INT[] I(INT l) { return R(INT.Parse, l); }
public INT[][] I(INT l, char c) { return R(INT.Parse, l, c); }
public DEC D() { return R(DEC.Parse); }
public DEC[] D(char c) { return R(DEC.Parse, c); }
public DEC[] D(INT l) { return R(DEC.Parse, l); }
public DEC[][] D(INT l, char c) { return R(DEC.Parse, l, c); }
public void W(object s, bool lf = true) { W(v => v.ToString(), s, lf); }
public void F() { Console.Write(SB); SB.Length = 0; }
}
Submission Info
| Submission Time |
|
| Task |
C - Rotate and Sum Query |
| User |
nokonoko |
| Language |
C# 11.0 (.NET 7.0.7) |
| Score |
0 |
| Code Size |
2629 Byte |
| Status |
RE |
| Exec Time |
2301 ms |
| Memory |
1543764 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
0 / 350 |
| Status |
|
|
| 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 |
60 ms |
26096 KiB |
| 00_sample_01.txt |
AC |
60 ms |
26204 KiB |
| 01_random_00.txt |
AC |
48 ms |
26580 KiB |
| 01_random_01.txt |
AC |
118 ms |
54416 KiB |
| 01_random_02.txt |
RE |
145 ms |
37568 KiB |
| 01_random_03.txt |
RE |
152 ms |
44144 KiB |
| 01_random_04.txt |
TLE |
2301 ms |
1543764 KiB |
| 01_random_05.txt |
RE |
170 ms |
43992 KiB |
| 01_random_06.txt |
AC |
336 ms |
179920 KiB |
| 01_random_07.txt |
RE |
157 ms |
44028 KiB |
| 01_random_08.txt |
RE |
145 ms |
37352 KiB |
| 01_random_09.txt |
RE |
153 ms |
44008 KiB |
| 01_random_10.txt |
RE |
154 ms |
42500 KiB |
| 01_random_11.txt |
RE |
157 ms |
44204 KiB |
| 01_random_12.txt |
RE |
149 ms |
44024 KiB |
| 01_random_13.txt |
RE |
153 ms |
44036 KiB |
| 01_random_14.txt |
RE |
149 ms |
44188 KiB |
| 01_random_15.txt |
RE |
157 ms |
44096 KiB |
| 01_random_16.txt |
RE |
154 ms |
44152 KiB |
| 01_random_17.txt |
RE |
149 ms |
44080 KiB |
| 01_random_18.txt |
RE |
153 ms |
50312 KiB |
| 01_random_19.txt |
RE |
156 ms |
46668 KiB |