Submission #172908


Source Code Expand

Copy
using System;
using System.IO;
using System.Text;
using System.Linq;
using System.Collections.Generic;

class Program
{
    Dictionary<int, long> curr, sum;

    void Solve()
    {
        int N = reader.Int(), Q = reader.Int();
        int[] A = reader.IntArray(N);
        int[] Query = reader.IntArray(Q);
        curr = new Dictionary<int, long>();
        sum = new Dictionary<int, long>();

        Array.ForEach(A, a => Update(a));
        Array.ForEach(Query, q => Console.WriteLine(sum.ContainsKey(q) ? sum[q] : 0));
        Console.ReadLine();
    }

    void Update(int a)
    {
        var next = new Dictionary<int, long>();
        Add(a, 1, next);
        Add(a, 1, sum);

        foreach (var other in curr.Keys)
        {
            int g = GCD(a, other);
            Add(g, curr[other], next);
            Add(g, curr[other], sum);
        }
        curr = next;
    }

    void Add(int key, long val, Dictionary<int, long> dic)
    {
        if (dic.ContainsKey(key)) dic[key] += val;
        else dic[key] = val;
    }

    static int GCD(int a, int b) { return b == 0 ? a : GCD(b, a % b); }




    static void Main() { new Program().Solve(); }
    static Reader reader = new Reader(Console.In);

    class Reader
    {
        private readonly TextReader reader;
        private readonly char[] separator = new char[] { ' ' };
        private string[] s = new string[0];
        private int i;
        public Reader(TextReader r) { reader = r; }
        public bool HasNext() { return Enqueue(); }
        public string String() { return Dequeue(); }
        public int Int() { return int.Parse(Dequeue()); }
        public long Long() { return long.Parse(Dequeue()); }
        public double Double() { return double.Parse(Dequeue()); }
        public int[] IntLine() { return Array.ConvertAll(Line().Split(), int.Parse); }
        public int[] IntArray(int N) { return Enumerable.Range(0, N).Select(i => Int()).ToArray(); }
        public int[][] IntGrid(int H) { return Enumerable.Range(0, H).Select(i => IntLine()).ToArray(); }
        public string[] StringArray(int N) { return Enumerable.Range(0, N).Select(i => Line()).ToArray(); }
        public string Line() { return reader.ReadLine().Trim(); }
        private bool Enqueue()
        {
            if (i < s.Length) return true;
            string line = reader.ReadLine();
            if (string.IsNullOrEmpty(line)) return false;
            s = line.Split(separator, StringSplitOptions.RemoveEmptyEntries);
            i = 0;
            return true;
        }
        private string Dequeue() { Enqueue(); return s[i++]; }
    }
}

Submission Info

Submission Time
Task D - GCD区間
User eitaho
Language C# (Mono 2.10.8.1)
Score 100
Code Size 2697 Byte
Status AC
Exec Time 1452 ms
Memory 17972 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 30
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 168 ms 9000 KB
subtask0_sample_02.txt AC 165 ms 9016 KB
subtask0_sample_03.txt AC 172 ms 9020 KB
subtask1_01.txt AC 184 ms 9252 KB
subtask1_02.txt AC 186 ms 9256 KB
subtask1_03.txt AC 234 ms 9248 KB
subtask1_04.txt AC 1452 ms 16912 KB
subtask1_05.txt AC 1450 ms 17724 KB
subtask1_06.txt AC 363 ms 10380 KB
subtask1_07.txt AC 341 ms 10508 KB
subtask1_08.txt AC 341 ms 10508 KB
subtask1_09.txt AC 456 ms 10632 KB
subtask1_10.txt AC 453 ms 10636 KB
subtask1_11.txt AC 1408 ms 17972 KB
subtask1_12.txt AC 391 ms 10636 KB
subtask1_13.txt AC 453 ms 10636 KB
subtask1_14.txt AC 383 ms 10664 KB
subtask1_15.txt AC 439 ms 10512 KB
subtask1_16.txt AC 464 ms 10240 KB
subtask1_17.txt AC 479 ms 10920 KB
subtask1_18.txt AC 390 ms 10488 KB
subtask1_19.txt AC 382 ms 10376 KB
subtask1_20.txt AC 383 ms 10480 KB
subtask1_21.txt AC 364 ms 10516 KB
subtask1_22.txt AC 381 ms 10580 KB
subtask1_23.txt AC 397 ms 10632 KB
subtask1_24.txt AC 370 ms 10504 KB
subtask1_25.txt AC 372 ms 10552 KB
subtask1_26.txt AC 1151 ms 11148 KB
subtask1_27.txt AC 1344 ms 11348 KB