Submission #1001993


Source Code Expand

using System;
using System.Text;
using System.Collections.Generic;
class Solve{
    int N;
    int[] A;
    public Solve(){}
    StringBuilder sb;
    public static int Main(){
        new Solve().Run();
        return 0;
    }
    void Run(){
        sb = new StringBuilder();
        Read();
        Calc();
        Console.Write(sb.ToString());
    }
    void Calc(){
        Que Q;
        int sum = 0;
        for(int i=2;i<N-1;i++){
            sum += A[i];
        }
        {
            int[] d = new int[sum];
            for(int i=0;i<sum;i++){
                d[i] = i;
            }
            Q = new Que(d);
        }
        for(int i=2;i<N-1;i++){
            if(A[i]*2 >= sum){
                int[] d = new int[sum];
                for(int j=0;j<A[i];j++){
                    d[j] = Q.Get(A[i]-j);
                }
                for(int j=A[i];j<N-1;j++){
                    d[j] = Q.Get(j-A[i]);
                }
                Q = new Que(d);
            }
            else{
                for(int j=0;j<A[i];j++){
                    Q.Put(Q.Get(2*j+1));
                }
            }
        }
        int M = int.Parse(Console.ReadLine());
        for(int i=0;i<M;i++){
            long j = Int64.Parse(Console.ReadLine());
            if(j >= sum){
                long ans = j - sum + A[0] - A[1];
                sb.Append(ans+"\n");
            }
            else{
                long ans = Q.Get((int)(j)) + A[0] - A[1];
                sb.Append(ans+"\n");
            }
        }
    }
    void Read(){
        N = int.Parse(Console.ReadLine());
        A = new int[N-1];
        string[] str = Console.ReadLine().Split(' ');
        for(int i=0;i<N-1;i++){
            A[i] = int.Parse(str[i]);
        }
    }    
}
class Que{
    public int[] array;
    int pointer;
    int length;
    public Que(int[] a){
        array = a;
        pointer = 0;
        length = a.Length;
    }
    public Que(int n){
        array = new int[n];
        pointer = n;
        length = n;
    }
    public void Put(int a){
        if(pointer == 0){
            pointer = length-1;
        }
        else{
            pointer--;
        }
        array[pointer] = a;
    }
    public int Get(int n){
        if(pointer + n >= length){
            return array[pointer + n - length];
        }
        else{
            return array[pointer + n];
        }
    }
}

Submission Info

Submission Time
Task H - Tokaido
User leign
Language C# (Mono 4.6.2.0)
Score 0
Code Size 2494 Byte
Status WA
Exec Time 266 ms
Memory 26404 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 0 / 700 0 / 900
Status
AC × 2
AC × 15
WA × 2
RE × 3
AC × 24
WA × 8
RE × 5
Set Name Test Cases
sample sample-01.txt, sample-02.txt
dataset1 sample-01.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt
dataset2 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt
Case Name Status Exec Time Memory
01-01.txt AC 97 ms 19544 KB
01-02.txt AC 20 ms 2648 KB
01-03.txt AC 34 ms 6744 KB
01-04.txt AC 64 ms 12376 KB
01-05.txt AC 98 ms 19544 KB
01-06.txt AC 97 ms 19544 KB
01-07.txt AC 51 ms 10200 KB
01-08.txt AC 99 ms 19544 KB
01-09.txt AC 100 ms 19672 KB
01-10.txt AC 33 ms 6616 KB
01-11.txt AC 47 ms 12376 KB
01-12.txt AC 98 ms 23000 KB
01-13.txt AC 100 ms 23000 KB
01-14.txt WA 99 ms 22872 KB
01-15.txt WA 99 ms 22744 KB
01-16.txt AC 96 ms 23384 KB
01-17.txt RE 82 ms 15832 KB
01-18.txt RE 83 ms 15832 KB
01-19.txt RE 82 ms 15832 KB
02-01.txt AC 70 ms 14168 KB
02-02.txt AC 266 ms 26092 KB
02-03.txt AC 228 ms 22704 KB
02-04.txt AC 232 ms 22192 KB
02-05.txt AC 180 ms 14768 KB
02-06.txt AC 238 ms 22448 KB
02-07.txt AC 237 ms 23464 KB
02-08.txt WA 193 ms 20656 KB
02-09.txt AC 191 ms 17200 KB
02-10.txt WA 222 ms 25768 KB
02-11.txt WA 261 ms 26148 KB
02-12.txt WA 246 ms 25472 KB
02-13.txt WA 253 ms 25764 KB
02-14.txt WA 252 ms 26404 KB
02-15.txt RE 82 ms 15832 KB
02-16.txt RE 83 ms 15832 KB
sample-01.txt AC 21 ms 2648 KB
sample-02.txt AC 21 ms 2648 KB