提出 #64986282


ソースコード 拡げる

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class Main {
    static InputStream is;
    static PrintWriter out;
    static String INPUT = "";
    static SplittableRandom gen = new SplittableRandom(114514810);

    static int X, Y, Z;
    static final boolean debug = false;

    public Main() throws IOException, FileNotFoundException {
    }

    static class SubProblem {
        List<Integer> org_row_idx_first;
        List<Integer> org_row_idx_second;
        long first_co[][];
        long second_co[][];

        SubProblem(
                List<Integer> org_row_idx_first,
                List<Integer> org_row_idx_second,
                long first_co[][],
                long second_co[][]
        ) {
            this.org_row_idx_first = org_row_idx_first;
            this.org_row_idx_second = org_row_idx_second;
            this.first_co = first_co;
            this.second_co = second_co;
        }

        long balance(){
            long ans = 0;
            for(int i = 0 ; i < first_co.length ; i++){
                for(int j = 0 ; j < first_co.length ; j++){
                    ans += (first_co[i][0] - first_co[j][0]) * (first_co[i][0] - first_co[j][0]) + (first_co[i][1] - first_co[j][1]) * (first_co[i][1] - first_co[j][1]);
                }
            }
            for(int i = 0 ; i < second_co.length ; i++){
                for(int j = 0 ; j < second_co.length ; j++){
                    ans += (second_co[i][0] - second_co[j][0]) * (second_co[i][0] - second_co[j][0]) + (second_co[i][1] - second_co[j][1]) * (second_co[i][1] - second_co[j][1]);
                }
            }
            return ans;
        }

        static SubProblem split(long cox[][], Predicate<long[]> predicate) {
            List<long[]> first = new ArrayList<>();
            List<long[]> second = new ArrayList<>();
            List<Integer> org_row_idx_first = new ArrayList<>();
            List<Integer> org_row_idx_second = new ArrayList<>();

            for (int i = 0; i < cox.length; i++) {
                if (predicate.test(cox[i])) {
                    org_row_idx_first.add(i);
                    first.add(cox[i]);
                } else {
                    org_row_idx_second.add(i);
                    second.add(cox[i]);
                }
            }
            return new SubProblem(org_row_idx_first, org_row_idx_second, first.toArray(new long[0][]), second.toArray(new long[0][]));
        }
    }

    static long[][] append(long[][] org, long[] p1, long[] p2){
        long[][] ans = new long[org.length+2][2];
        for(int i = 0 ; i < org.length ; i++)
            ans[i] = org[i];
        ans[org.length] = p1;
        ans[org.length+1] = p2;
        return ans;
    }

    // 2点を持って貪欲
    static void solve() {

        long S = System.currentTimeMillis();
        X = ni();
        Y = ni();
        Z = ni();
        long[][] cox, coy, coz;
        cox = nml(X, 2);
        coy = nml(Y, 2);
        coz = nml(Z, 2);


        SubProblem xSub = null;
        SubProblem ySub = null;

        for(int i = 0 ; i < 1000 ; i++){
            // Generate two random points with coordinates less than 1000000
            long[] p1 = new long[]{gen.nextInt(1000000), gen.nextInt(1000000)};
            long[] p2 = new long[]{gen.nextInt(1000000), gen.nextInt(1000000)};

            // Use cross product (orient function) to determine which side of the line each point falls on
            SubProblem xSub_ = SubProblem.split(cox, (co) -> orient(p1, p2, co) > 0);
            SubProblem ySub_ = SubProblem.split(coy, (co) -> orient(p1, p2, co) < 0);

            if( xSub == null || xSub_.balance() + ySub_.balance() < xSub.balance() + ySub.balance() ) {
                xSub = xSub_;
                ySub = ySub_;
                System.err.println(xSub.first_co.length + " " + xSub.second_co.length + "|" + ySub.first_co.length + " " + ySub.second_co.length);
            }
        }


        assert Y == 0;

        Result bestA = null;
        long rep = 0;
        while (System.currentTimeMillis() - S < 900) {
            rep++;
            Result res = greedy_solve(bestA != null && bestA.count == xSub.first_co.length ? bestA.time : 1.5e7, xSub.first_co, coy, coz, xSub.org_row_idx_first, -1, -1);
            if (bestA == null || bestA.count < res.count || (bestA.count == res.count && bestA.time > res.time)) {
                bestA = res;
                System.err.println(bestA.time);
            }
        }

        Result bestB = null;
        while (System.currentTimeMillis() - S < 1800) {
            rep++;
            Result res = greedy_solve(bestB != null && bestB.count == ySub.first_co.length  ? bestB.time : 1.5e7, ySub.first_co, cox, coz, ySub.org_row_idx_first, -1, -1);
            if (bestB == null || bestB.count < res.count || (bestB.count == res.count && bestB.time > res.time)) {
                bestB = res;
                System.err.println(bestB.time);

            }
        }

        MergedResult firstBest = new MergedResult(bestA, bestB, cox, coy);

        xSub.org_row_idx_second.add(bestA.route.get(bestA.route.size()-2));
        xSub.org_row_idx_second.add(bestA.route.get(bestA.route.size()-1));
        Result easyA = greedy_solve(1.5e7, append(xSub.second_co, cox[bestA.route.get(bestA.route.size()-2)], cox[bestA.route.get(bestA.route.size()-1)]), ySub.second_co, new long[0][], xSub.org_row_idx_second, xSub.second_co.length, xSub.second_co.length+1);
        ySub.org_row_idx_second.add(bestB.route.get(bestB.route.size()-2));
        ySub.org_row_idx_second.add(bestB.route.get(bestB.route.size()-1));
        Result easyB = greedy_solve(1.5e7, append(ySub.second_co, coy[bestB.route.get(bestB.route.size()-2)], coy[bestB.route.get(bestB.route.size()-1)]), xSub.second_co , new long[0][], ySub.org_row_idx_second, ySub.second_co.length, ySub.second_co.length+1);

        MergedResult second = new MergedResult(easyA, easyB, cox, coy);


        if (debug) {
            tr("best.time", bestA.time);
            tr("best.count", bestA.count);
            tr("rep", rep);
            tr("steps", steps);
        } else {
            firstBest.show();;
            second.show();;
        }
    }

    static class Result {
        List<Integer> route;
        double time;
        int count;

        public Result(List<Integer> route, double time, int count, List<Integer> idxMap) {
            this.route = route.stream().map(r -> idxMap.get(r)).collect(Collectors.toList());
            this.time = time;
            this.count = count;
        }

    }

    static class MergedResult {
        long[][] output;
        double time;
        int count;

        public MergedResult(final Result x, final Result y, long cox[][], long coy[][]) {
            assert x.route.size() % 2 == 0;
            assert y.route.size() % 2 == 0;

            long[][] output = new long[Math.max(x.route.size() / 2, y.route.size() / 2)][8];
            int lastIndex_X = -1;
            int lastIndex_Y = -1;

            for (int i = 0; i < output.length; i++) {
                if (i * 2 + 1 < x.route.size()) {
                    int a = x.route.get(i * 2);
                    int b = x.route.get(i * 2 + 1);
                    output[i][0] = cox[a][0];
                    output[i][1] = cox[a][1];
                    output[i][2] = cox[b][0];
                    output[i][3] = cox[b][1];
                    lastIndex_X = i;
                } else {
                    output[i][0] = output[lastIndex_X][0];
                    output[i][1] = output[lastIndex_X][1];
                    output[i][2] = output[lastIndex_X][2];
                    output[i][3] = output[lastIndex_X][3];
                }

                if (i * 2 + 1 < y.route.size()) {
                    int a = y.route.get(i * 2);
                    int b = y.route.get(i * 2 + 1);
                    output[i][4] = coy[a][0];
                    output[i][5] = coy[a][1];
                    output[i][6] = coy[b][0];
                    output[i][7] = coy[b][1];
                    lastIndex_Y = i;
                } else {
                    output[i][4] = output[lastIndex_Y][4];
                    output[i][5] = output[lastIndex_Y][5];
                    output[i][6] = output[lastIndex_Y][6];
                    output[i][7] = output[lastIndex_Y][7];
                }
            }

            double score = 0;
            for (int i = 0; i + 1 < output.length; i++) {
                double aa = Math.sqrt(d2(new long[]{output[i][0], output[i][1]}, new long[]{output[i + 1][0], output[i + 1][1]}));
                double bb = Math.sqrt(d2(new long[]{output[i][2], output[i][3]}, new long[]{output[i + 1][2], output[i + 1][3]}));
                double cc = Math.sqrt(d2(new long[]{output[i][4], output[i][5]}, new long[]{output[i + 1][4], output[i + 1][5]}));
                double dd = Math.sqrt(d2(new long[]{output[i][6], output[i][7]}, new long[]{output[i + 1][6], output[i + 1][7]}));
                score += Math.max(aa + bb, cc + dd);
            }
            this.time = score;
            this.output = output;
            this.count = x.count + y.count;
        }

        void show() {
            for (int i = 0; i < output.length; i++) {
                out.println(Arrays.stream(output[i]).mapToObj(e -> String.valueOf(e)).collect(Collectors.joining(" ")));
            }

        }
    }

    static long steps = 0;

    static Result greedy_solve(double lim, long[][] cox, long[][] coy, long[][] coz, List<Integer> orgIdxMap,int L,int R) {
        int X = cox.length;
        int Y = coy.length;
        int Z = coz.length;

        List<Integer> route = new ArrayList<>();

        boolean[] ved = new boolean[X];
        int l = gen.nextInt(X);
        int r = gen.nextInt(X);
        if( L != -1 ) l = L;
        if( R != -1 ) r = R;

        ved[l] = ved[r] = true;
        route.add(l);
        route.add(r);
        double time = 0;
//		int side = 0;
        while (!allTrue(ved) && time <= lim) {
            int argi = -1;
            int argp = -1;
            double argt = 0;
            double argpdt = -1;
            inner:
            for (int i = 0; i < X; i++) {
                if (i == l) continue;
                // 障害物を通らないこと
                for (int k = 0; k < Z; k++) {
                    if (contains(coz[k], cox[l], cox[r], cox[i])) {
                        continue inner;
                    }
                }
                for (int k = 0; k < Y; k++) {
                    if (contains(coy[k], cox[l], cox[r], cox[i])) {
                        continue inner;
                    }
                }
                int plus = 0;
                double dt = Math.sqrt(d2(cox[l], cox[i]));
                if (time + dt >= lim) continue;
                for (int k = 0; k < X; k++) {
                    if (ved[k]) continue;
                    steps++;
                    if (contains(cox[k], cox[l], cox[r], cox[i])) {
                        plus += 1;
                    }
                }
                double pdt = plus / dt;

                if (pdt > argpdt || (pdt == argpdt && plus > argp) || (pdt == argpdt && plus == argp && dt < argt)) {
                    argi = i;
                    argp = plus;
                    argt = dt;
                    argpdt = pdt;
                }
            }
            if (argi == -1) break;

            for (int k = 0; k < X; k++) {
                if (ved[k]) continue;
                if (contains(cox[k], cox[l], cox[r], cox[argi])) {
                    ved[k] = true;
                }
            }
//			tr(l, r, argi, argt);

            l = r;
            r = argi;
            time += argt;
            route.add(argi);
        }
        if (route.size() % 2 == 1) {
            route.add(route.get(route.size() - 2));
        }

//		tr(count(ved));
        return new Result(route, time, count(ved), orgIdxMap);
    }


    static long d2(long[] a, long[] b) {
        return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]);
    }

    static int count(boolean[] b) {
        int count = 0;
        for (boolean bb : b) {
            if (bb) count++;
        }
        return count;
    }

    static boolean allTrue(boolean[] b) {
        for (boolean bb : b) {
            if (!bb) return false;
        }
        return true;
    }

    // 2D orientation: positive if p is to the left of the line a→b, negative if to the right, zero if colinear
    public static long orient(long[] a, long[] b, long[] p) {
        return (b[0] - a[0]) * (p[1] - a[1]) - (b[1] - a[1]) * (p[0] - a[0]);
    }

    // Check if point p is inside triangle abc or on its boundary
    public static boolean contains(long[] p, long[] a, long[] b, long[] c) {
        // Degenerate case: triangle is colinear
        if (orient(a, b, c) == 0) {
            if (orient(a, b, p) != 0 || orient(a, c, p) != 0) {
                return false;
            }
            long minX = Math.min(a[0], Math.min(b[0], c[0]));
            long maxX = Math.max(a[0], Math.max(b[0], c[0]));
            long minY = Math.min(a[1], Math.min(b[1], c[1]));
            long maxY = Math.max(a[1], Math.max(b[1], c[1]));
            return minX <= p[0] && p[0] <= maxX && minY <= p[1] && p[1] <= maxY;
        }

        // Non-degenerate triangle: check that p lies on the same side of all edges
        long c1 = orient(a, b, p);
        long c2 = orient(b, c, p);
        long c3 = orient(c, a, p);
        return (c1 >= 0 && c2 >= 0 && c3 >= 0) || (c1 <= 0 && c2 <= 0 && c3 <= 0);
    }


    public static void main(String[] args) throws Exception {
        long S = System.currentTimeMillis();
        is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes());
        out = new PrintWriter(System.out);
        if (Files.exists(Path.of("/home/kyuridenamida/masters-2025-final/kyuridenamida/sol/in.txt"))) {
            is = new FileInputStream("/home/kyuridenamida/masters-2025-final/kyuridenamida/sol/in.txt");
            out = new PrintWriter(new FileOutputStream("/home/kyuridenamida/masters-2025-final/kyuridenamida/sol/out.txt"));
        }

        solve();
        out.flush();
        long G = System.currentTimeMillis();
        tr(G - S + "ms");
    }

    private static boolean eof() {
        if (lenbuf == -1) return true;
        int lptr = ptrbuf;
        while (lptr < lenbuf) if (!isSpaceChar(inbuf[lptr++])) return false;

        try {
            is.mark(1000);
            while (true) {
                int b = is.read();
                if (b == -1) {
                    is.reset();
                    return true;
                } else if (!isSpaceChar(b)) {
                    is.reset();
                    return false;
                }
            }
        } catch (IOException e) {
            return true;
        }
    }

    private static byte[] inbuf = new byte[1024];
    static int lenbuf = 0, ptrbuf = 0;

    private static int readByte() {
        if (lenbuf == -1) throw new InputMismatchException();
        if (ptrbuf >= lenbuf) {
            ptrbuf = 0;
            try {
                lenbuf = is.read(inbuf);
            } catch (IOException e) {
                throw new InputMismatchException();
            }
            if (lenbuf <= 0) return -1;
        }
        return inbuf[ptrbuf++];
    }

    private static boolean isSpaceChar(int c) {
        return !(c >= 33 && c <= 126);
    }

    //	private static boolean isSpaceChar(int c) { return !(c >= 32 && c <= 126); }
    private static int skip() {
        int b;
        while ((b = readByte()) != -1 && isSpaceChar(b)) ;
        return b;
    }

    private static double nd() {
        return Double.parseDouble(ns());
    }

    private static char nc() {
        return (char) skip();
    }

    private static String ns() {
        int b = skip();
        StringBuilder sb = new StringBuilder();
        while (!(isSpaceChar(b))) {
            sb.appendCodePoint(b);
            b = readByte();
        }
        return sb.toString();
    }

    private static char[] ns(int n) {
        char[] buf = new char[n];
        int b = skip(), p = 0;
        while (p < n && !(isSpaceChar(b))) {
            buf[p++] = (char) b;
            b = readByte();
        }
        return n == p ? buf : Arrays.copyOf(buf, p);
    }

    private static char[][] nm(int n, int m) {
        char[][] map = new char[n][];
        for (int i = 0; i < n; i++) map[i] = ns(m);
        return map;
    }

    private static int[][] nmi(int n, int m) {
        int[][] map = new int[n][];
        for (int i = 0; i < n; i++) map[i] = na(m);
        return map;
    }

    private static long[][] nml(int n, int m) {
        long[][] map = new long[n][];
        for (int i = 0; i < n; i++) map[i] = nal(m);
        return map;
    }

    private static int[] na(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) a[i] = ni();
        return a;
    }

    private static long[] nal(int n) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) a[i] = nl();
        return a;
    }

    private static int ni() {
        int num = 0, b;
        boolean minus = false;
        while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')) ;
        if (b == '-') {
            minus = true;
            b = readByte();
        }

        while (true) {
            if (b >= '0' && b <= '9') {
                num = num * 10 + (b - '0');
            } else {
                return minus ? -num : num;
            }
            b = readByte();
        }
    }

    private static long nl() {
        long num = 0;
        int b;
        boolean minus = false;
        while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')) ;
        if (b == '-') {
            minus = true;
            b = readByte();
        }

        while (true) {
            if (b >= '0' && b <= '9') {
                num = num * 10 + (b - '0');
            } else {
                return minus ? -num : num;
            }
            b = readByte();
        }
    }

    private static void tr(Object... o) {
        if (INPUT.length() != 0) System.out.println(Arrays.deepToString(o));
    }
}

提出情報

提出日時
問題 B - Cooperative Trash Sorting (B)
ユーザ kyuridenamida
言語 Java (OpenJDK 17)
得点 692058812
コード長 18947 Byte
結果 AC
実行時間 1891 ms
メモリ 62568 KiB

ジャッジ結果

セット名 test_ALL
得点 / 配点 692058812 / 1500000000
結果
AC × 150
セット名 テストケース
test_ALL test_0000.txt, test_0001.txt, test_0002.txt, test_0003.txt, test_0004.txt, test_0005.txt, test_0006.txt, test_0007.txt, test_0008.txt, test_0009.txt, test_0010.txt, test_0011.txt, test_0012.txt, test_0013.txt, test_0014.txt, test_0015.txt, test_0016.txt, test_0017.txt, test_0018.txt, test_0019.txt, test_0020.txt, test_0021.txt, test_0022.txt, test_0023.txt, test_0024.txt, test_0025.txt, test_0026.txt, test_0027.txt, test_0028.txt, test_0029.txt, test_0030.txt, test_0031.txt, test_0032.txt, test_0033.txt, test_0034.txt, test_0035.txt, test_0036.txt, test_0037.txt, test_0038.txt, test_0039.txt, test_0040.txt, test_0041.txt, test_0042.txt, test_0043.txt, test_0044.txt, test_0045.txt, test_0046.txt, test_0047.txt, test_0048.txt, test_0049.txt, test_0050.txt, test_0051.txt, test_0052.txt, test_0053.txt, test_0054.txt, test_0055.txt, test_0056.txt, test_0057.txt, test_0058.txt, test_0059.txt, test_0060.txt, test_0061.txt, test_0062.txt, test_0063.txt, test_0064.txt, test_0065.txt, test_0066.txt, test_0067.txt, test_0068.txt, test_0069.txt, test_0070.txt, test_0071.txt, test_0072.txt, test_0073.txt, test_0074.txt, test_0075.txt, test_0076.txt, test_0077.txt, test_0078.txt, test_0079.txt, test_0080.txt, test_0081.txt, test_0082.txt, test_0083.txt, test_0084.txt, test_0085.txt, test_0086.txt, test_0087.txt, test_0088.txt, test_0089.txt, test_0090.txt, test_0091.txt, test_0092.txt, test_0093.txt, test_0094.txt, test_0095.txt, test_0096.txt, test_0097.txt, test_0098.txt, test_0099.txt, test_0100.txt, test_0101.txt, test_0102.txt, test_0103.txt, test_0104.txt, test_0105.txt, test_0106.txt, test_0107.txt, test_0108.txt, test_0109.txt, test_0110.txt, test_0111.txt, test_0112.txt, test_0113.txt, test_0114.txt, test_0115.txt, test_0116.txt, test_0117.txt, test_0118.txt, test_0119.txt, test_0120.txt, test_0121.txt, test_0122.txt, test_0123.txt, test_0124.txt, test_0125.txt, test_0126.txt, test_0127.txt, test_0128.txt, test_0129.txt, test_0130.txt, test_0131.txt, test_0132.txt, test_0133.txt, test_0134.txt, test_0135.txt, test_0136.txt, test_0137.txt, test_0138.txt, test_0139.txt, test_0140.txt, test_0141.txt, test_0142.txt, test_0143.txt, test_0144.txt, test_0145.txt, test_0146.txt, test_0147.txt, test_0148.txt, test_0149.txt
ケース名 結果 実行時間 メモリ
test_0000.txt AC 1888 ms 58512 KiB
test_0001.txt AC 1857 ms 57640 KiB
test_0002.txt AC 1860 ms 59496 KiB
test_0003.txt AC 1859 ms 55616 KiB
test_0004.txt AC 1856 ms 58368 KiB
test_0005.txt AC 1856 ms 58300 KiB
test_0006.txt AC 1858 ms 55132 KiB
test_0007.txt AC 1858 ms 56328 KiB
test_0008.txt AC 1857 ms 56932 KiB
test_0009.txt AC 1856 ms 56672 KiB
test_0010.txt AC 1859 ms 58516 KiB
test_0011.txt AC 1853 ms 54240 KiB
test_0012.txt AC 1858 ms 58368 KiB
test_0013.txt AC 1855 ms 56796 KiB
test_0014.txt AC 1859 ms 59472 KiB
test_0015.txt AC 1860 ms 55856 KiB
test_0016.txt AC 1859 ms 58392 KiB
test_0017.txt AC 1889 ms 57680 KiB
test_0018.txt AC 1860 ms 60976 KiB
test_0019.txt AC 1858 ms 59316 KiB
test_0020.txt AC 1865 ms 55760 KiB
test_0021.txt AC 1856 ms 55544 KiB
test_0022.txt AC 1857 ms 55312 KiB
test_0023.txt AC 1857 ms 57976 KiB
test_0024.txt AC 1889 ms 59056 KiB
test_0025.txt AC 1856 ms 57056 KiB
test_0026.txt AC 1861 ms 56788 KiB
test_0027.txt AC 1856 ms 55520 KiB
test_0028.txt AC 1860 ms 56212 KiB
test_0029.txt AC 1857 ms 57660 KiB
test_0030.txt AC 1859 ms 55976 KiB
test_0031.txt AC 1860 ms 57292 KiB
test_0032.txt AC 1855 ms 56512 KiB
test_0033.txt AC 1858 ms 56628 KiB
test_0034.txt AC 1855 ms 54680 KiB
test_0035.txt AC 1885 ms 60744 KiB
test_0036.txt AC 1891 ms 56912 KiB
test_0037.txt AC 1856 ms 55548 KiB
test_0038.txt AC 1856 ms 58912 KiB
test_0039.txt AC 1882 ms 56508 KiB
test_0040.txt AC 1856 ms 58052 KiB
test_0041.txt AC 1862 ms 55552 KiB
test_0042.txt AC 1859 ms 56436 KiB
test_0043.txt AC 1859 ms 57064 KiB
test_0044.txt AC 1855 ms 58668 KiB
test_0045.txt AC 1860 ms 55536 KiB
test_0046.txt AC 1854 ms 55040 KiB
test_0047.txt AC 1859 ms 55256 KiB
test_0048.txt AC 1862 ms 56164 KiB
test_0049.txt AC 1860 ms 60280 KiB
test_0050.txt AC 1857 ms 55696 KiB
test_0051.txt AC 1885 ms 56544 KiB
test_0052.txt AC 1857 ms 55632 KiB
test_0053.txt AC 1856 ms 56428 KiB
test_0054.txt AC 1861 ms 60348 KiB
test_0055.txt AC 1856 ms 55612 KiB
test_0056.txt AC 1855 ms 58040 KiB
test_0057.txt AC 1858 ms 55644 KiB
test_0058.txt AC 1862 ms 59380 KiB
test_0059.txt AC 1858 ms 55784 KiB
test_0060.txt AC 1856 ms 55432 KiB
test_0061.txt AC 1857 ms 56172 KiB
test_0062.txt AC 1860 ms 56312 KiB
test_0063.txt AC 1858 ms 56488 KiB
test_0064.txt AC 1858 ms 56508 KiB
test_0065.txt AC 1860 ms 57708 KiB
test_0066.txt AC 1859 ms 57416 KiB
test_0067.txt AC 1860 ms 58768 KiB
test_0068.txt AC 1859 ms 55092 KiB
test_0069.txt AC 1857 ms 61928 KiB
test_0070.txt AC 1855 ms 57004 KiB
test_0071.txt AC 1859 ms 58520 KiB
test_0072.txt AC 1861 ms 55916 KiB
test_0073.txt AC 1854 ms 55204 KiB
test_0074.txt AC 1860 ms 56688 KiB
test_0075.txt AC 1857 ms 56624 KiB
test_0076.txt AC 1856 ms 58676 KiB
test_0077.txt AC 1855 ms 58840 KiB
test_0078.txt AC 1859 ms 55964 KiB
test_0079.txt AC 1857 ms 54840 KiB
test_0080.txt AC 1859 ms 55752 KiB
test_0081.txt AC 1885 ms 57396 KiB
test_0082.txt AC 1858 ms 56832 KiB
test_0083.txt AC 1859 ms 56480 KiB
test_0084.txt AC 1859 ms 57568 KiB
test_0085.txt AC 1890 ms 59456 KiB
test_0086.txt AC 1857 ms 56632 KiB
test_0087.txt AC 1855 ms 55748 KiB
test_0088.txt AC 1857 ms 54740 KiB
test_0089.txt AC 1858 ms 56496 KiB
test_0090.txt AC 1860 ms 59296 KiB
test_0091.txt AC 1858 ms 57900 KiB
test_0092.txt AC 1860 ms 58056 KiB
test_0093.txt AC 1861 ms 58404 KiB
test_0094.txt AC 1862 ms 62568 KiB
test_0095.txt AC 1860 ms 56760 KiB
test_0096.txt AC 1858 ms 55532 KiB
test_0097.txt AC 1860 ms 57788 KiB
test_0098.txt AC 1857 ms 56312 KiB
test_0099.txt AC 1858 ms 56012 KiB
test_0100.txt AC 1857 ms 58116 KiB
test_0101.txt AC 1861 ms 56768 KiB
test_0102.txt AC 1857 ms 54668 KiB
test_0103.txt AC 1853 ms 57732 KiB
test_0104.txt AC 1878 ms 56360 KiB
test_0105.txt AC 1856 ms 56212 KiB
test_0106.txt AC 1859 ms 55956 KiB
test_0107.txt AC 1863 ms 57416 KiB
test_0108.txt AC 1856 ms 56136 KiB
test_0109.txt AC 1853 ms 57680 KiB
test_0110.txt AC 1859 ms 60212 KiB
test_0111.txt AC 1857 ms 56576 KiB
test_0112.txt AC 1876 ms 57524 KiB
test_0113.txt AC 1856 ms 56244 KiB
test_0114.txt AC 1857 ms 57244 KiB
test_0115.txt AC 1855 ms 57456 KiB
test_0116.txt AC 1857 ms 57492 KiB
test_0117.txt AC 1861 ms 57132 KiB
test_0118.txt AC 1858 ms 58616 KiB
test_0119.txt AC 1857 ms 56352 KiB
test_0120.txt AC 1857 ms 56852 KiB
test_0121.txt AC 1856 ms 58036 KiB
test_0122.txt AC 1861 ms 59832 KiB
test_0123.txt AC 1856 ms 56604 KiB
test_0124.txt AC 1859 ms 58572 KiB
test_0125.txt AC 1862 ms 55992 KiB
test_0126.txt AC 1860 ms 57364 KiB
test_0127.txt AC 1857 ms 59444 KiB
test_0128.txt AC 1860 ms 57592 KiB
test_0129.txt AC 1858 ms 59652 KiB
test_0130.txt AC 1858 ms 56152 KiB
test_0131.txt AC 1854 ms 57448 KiB
test_0132.txt AC 1856 ms 56740 KiB
test_0133.txt AC 1858 ms 54576 KiB
test_0134.txt AC 1858 ms 58012 KiB
test_0135.txt AC 1858 ms 55140 KiB
test_0136.txt AC 1859 ms 58172 KiB
test_0137.txt AC 1858 ms 57832 KiB
test_0138.txt AC 1857 ms 55700 KiB
test_0139.txt AC 1890 ms 55536 KiB
test_0140.txt AC 1859 ms 56240 KiB
test_0141.txt AC 1857 ms 57004 KiB
test_0142.txt AC 1858 ms 56844 KiB
test_0143.txt AC 1858 ms 54772 KiB
test_0144.txt AC 1859 ms 57808 KiB
test_0145.txt AC 1856 ms 56740 KiB
test_0146.txt AC 1857 ms 56116 KiB
test_0147.txt AC 1860 ms 57144 KiB
test_0148.txt AC 1858 ms 58208 KiB
test_0149.txt AC 1857 ms 58920 KiB