Submission #998728


Source Code Expand

import std.stdio;
import std.string;
import std.conv;
import std.typecons;
import std.algorithm;
import std.functional;
import std.bigint;
import std.numeric;
import std.array;
import std.math;
import std.range;
import std.container;
import std.ascii;
void times(alias pred)(int n) {
    foreach(i; 0..n) pred();
}
auto rep(alias pred, T = typeof(pred()))(int n) {
    T[] res = new T[n];
    foreach(ref e; res) e = pred();
    return res;
}

void main() {
    int N, M;
    readf("%d %d\n", &N, &M);

    (new int[][M]).pipe!((a) {
      readln.split.to!(int[]).each!((x) {
          a[x%M] ~= x;
      });
      return a;
    }).map!(a =>
        redBlackTree!((b, c) =>
            (b[1]+c[1])%2!=0 ? b[1]%2!=0 :
            b[1] != c[1]     ? b[1]>c[1] :
                               b[0]<c[0]
        )(a.sort().group.array ~ tuple!(int, uint)(-1, 0))
    ).array.pipe!((ary) {
        int v1 = (M/2 + 1).iota.map!((i){
            int cnt = 0;
            if (i==0 || i*2==M) {
                cnt = ary[i][].map!(a => a[1]).sum/2;
                ary[i].clear;
            } else {
                int j = M-i;
                while([i, j].all!(k => ary[k].front[1]>0)) {
                    cnt++;
                    [i, j].each!(k =>
                        ary[k].pipe!((tree) {
                            auto v = tree.front;
                            tree.removeFront;
                            v[1]--;
                            tree.insert(v);
                        })
                    );
                }
            }
            return cnt;
        }).array.sum;
        int v2 = ary.map!(a => a[].map!(b => b[1]/2).sum).sum;
        return v1+v2;
    }).writeln;
}

Submission Info

Submission Time
Task D - Pair Cards
User arkark
Language D (DMD64 v2.070.1)
Score 700
Code Size 1762 Byte
Status AC
Exec Time 234 ms
Memory 45372 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 700 / 700
Status
AC × 2
AC × 32
Set Name Test Cases
sample sample-01.txt, sample-02.txt
all 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, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt
Case Name Status Exec Time Memory
01-01.txt AC 2 ms 256 KB
01-02.txt AC 63 ms 7868 KB
01-03.txt AC 64 ms 8252 KB
01-04.txt AC 95 ms 12348 KB
01-05.txt AC 85 ms 12092 KB
01-06.txt AC 104 ms 12476 KB
01-07.txt AC 106 ms 12220 KB
01-08.txt AC 113 ms 13628 KB
01-09.txt AC 104 ms 14140 KB
01-10.txt AC 141 ms 22716 KB
01-11.txt AC 205 ms 36284 KB
01-12.txt AC 28 ms 3376 KB
01-13.txt AC 72 ms 15024 KB
01-14.txt AC 86 ms 10556 KB
01-15.txt AC 125 ms 15164 KB
01-16.txt AC 128 ms 16572 KB
01-17.txt AC 124 ms 18492 KB
01-18.txt AC 125 ms 20284 KB
01-19.txt AC 126 ms 21820 KB
01-20.txt AC 234 ms 45372 KB
01-21.txt AC 37 ms 4156 KB
01-22.txt AC 67 ms 6460 KB
01-23.txt AC 74 ms 7740 KB
01-24.txt AC 66 ms 9404 KB
01-25.txt AC 78 ms 11964 KB
01-26.txt AC 145 ms 29372 KB
01-27.txt AC 155 ms 30304 KB
01-28.txt AC 116 ms 24444 KB
01-29.txt AC 45 ms 9724 KB
01-30.txt AC 113 ms 23932 KB
sample-01.txt AC 3 ms 256 KB
sample-02.txt AC 2 ms 256 KB