Submission #1002024


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+1 > 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<sum;j++){
                    d[j] = Q.Get(j-A[i]);
                }
                if(A[i] == sum){
                    d[0] = sum;
                }
                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 2581 Byte
Status RE
Exec Time 265 ms
Memory 26404 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 0 / 700 0 / 900
Status
AC × 2
AC × 17
RE × 3
AC × 32
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 33 ms 6744 KB
01-04.txt AC 62 ms 12376 KB
01-05.txt AC 95 ms 19544 KB
01-06.txt AC 96 ms 19544 KB
01-07.txt AC 51 ms 10200 KB
01-08.txt AC 97 ms 19544 KB
01-09.txt AC 97 ms 19672 KB
01-10.txt AC 33 ms 6616 KB
01-11.txt AC 46 ms 12504 KB
01-12.txt AC 97 ms 23256 KB
01-13.txt AC 99 ms 23512 KB
01-14.txt AC 98 ms 23384 KB
01-15.txt AC 99 ms 23384 KB
01-16.txt AC 95 ms 23384 KB
01-17.txt RE 79 ms 15704 KB
01-18.txt RE 79 ms 15704 KB
01-19.txt RE 79 ms 15704 KB
02-01.txt AC 69 ms 14168 KB
02-02.txt AC 265 ms 26092 KB
02-03.txt AC 225 ms 22704 KB
02-04.txt AC 226 ms 22192 KB
02-05.txt AC 175 ms 14768 KB
02-06.txt AC 230 ms 22448 KB
02-07.txt AC 236 ms 23464 KB
02-08.txt AC 197 ms 21420 KB
02-09.txt AC 184 ms 17200 KB
02-10.txt AC 220 ms 26152 KB
02-11.txt AC 250 ms 26276 KB
02-12.txt AC 247 ms 25856 KB
02-13.txt AC 249 ms 26020 KB
02-14.txt AC 244 ms 26404 KB
02-15.txt RE 78 ms 15704 KB
02-16.txt RE 79 ms 15704 KB
sample-01.txt AC 20 ms 2648 KB
sample-02.txt AC 20 ms 2648 KB