Submission #1174095


Source Code Expand

import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        new Main().solve();
    }

    private static final int[] dx = {1, 0, -1, 0};
    private static final int[] dy = {0, 1, 0, -1};
    private XorShift random = new XorShift();
    int n = 8;

    void solve() {
        try (Scanner in = new Scanner(System.in)) {
            for (int turn = 0; turn < 1000; ++turn) {
                int d = in.nextInt();
                int t = in.nextInt();
                Tank[] tanks = new Tank[n];
                for (int i = 0; i < n; ++i) {
                    tanks[i] = new Tank();
                    tanks[i].i = i + 1;
                    tanks[i].c = in.nextInt();
                }
                for (int i = 0; i < n; ++i) {
                    tanks[i].a = in.nextInt();
                }
                solve(d, t, tanks);
            }
        }
    }

    class Tank {
        int c, a, i;
    }

    void solve(int D, int T, Tank[] tanks) {
        int sum = Stream.of(tanks).mapToInt(x -> x.c).sum();
        if (sum < 50) {
            Arrays.sort(tanks, (a, b) -> a.c - b.c);
            System.out.println("change " + tanks[0].i);
            return;
        }
        for (Tank t : tanks) {
            if (t.c != t.a) {
                System.out.println("fill " + t.i);
                return;
            }
        }
        if (D < 35) {
            System.out.println("pass");
            return;
        }
        Arrays.sort(tanks, (a, b) -> b.c - a.c);
        for (int b = 1; b < (1 << n); ++b) {
            int count = Integer.bitCount(b);
            int s = 0;
            for (int i = 0; i < n; ++i) {
                if ((b & (1 << i)) != 0) {
                    s += tanks[i].c;
                }
            }
            if (s == D) {
                StringBuilder sb = new StringBuilder();
                sb.append("sell ").append(count);
                for (int i = 0; i < n; ++i) {
                    if ((b & (1 << i)) != 0) {
                        sb.append(" " + tanks[i].i);
                    }
                }
                System.out.println(sb);
                return;
            }
        }
        System.out.println("pass");
    }


    private final class XorShift {
        int x = 123456789;
        int y = 362436069;
        int z = 521288629;
        int w = 88675123;

        int nextInt(int n) {
            final int t = x ^ (x << 11);
            x = y;
            y = z;
            z = w;
            w = (w ^ (w >>> 19)) ^ (t ^ (t >>> 8));
            final int r = w % n;
            return r < 0 ? r + n : r;
        }

        int nextInt() {
            final int t = x ^ (x << 11);
            x = y;
            y = z;
            z = w;
            return w = (w ^ (w >>> 19)) ^ (t ^ (t >>> 8));
        }

        long nextLong() {
            return ((long) nextInt() << 32) | (long) nextInt();
        }
    }

    private void tr(Object... o) {
        System.err.println(Arrays.deepToString(o));
    }
}

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User hoshi524
Language Java8 (OpenJDK 1.8.0)
Score 6729332
Code Size 3207 Byte
Status AC
Exec Time 473 ms
Memory 44852 KB

Judge Result

Set Name test_01 test_02 test_03 test_04 test_05 test_06 test_07 test_08 test_09 test_10 test_11 test_12 test_13 test_14 test_15 test_16 test_17 test_18 test_19 test_20 test_21 test_22 test_23 test_24 test_25 test_26 test_27 test_28 test_29 test_30 test_31 test_32 test_33 test_34 test_35 test_36 test_37 test_38 test_39 test_40 test_41 test_42 test_43 test_44 test_45 test_46 test_47 test_48 test_49 test_50
Score / Max Score 130245 / 417500 133701 / 417500 140408 / 417500 130176 / 417500 133932 / 417500 145119 / 417500 151906 / 417500 136555 / 417500 137565 / 417500 145797 / 417500 135028 / 417500 128716 / 417500 141032 / 417500 140170 / 417500 121039 / 417500 138166 / 417500 132885 / 417500 135094 / 417500 148922 / 417500 130097 / 417500 130667 / 417500 126034 / 417500 125712 / 417500 129088 / 417500 129302 / 417500 127591 / 417500 133443 / 417500 134548 / 417500 134861 / 417500 143858 / 417500 142054 / 417500 129382 / 417500 128349 / 417500 142076 / 417500 129658 / 417500 143228 / 417500 144900 / 417500 129287 / 417500 119031 / 417500 132362 / 417500 138585 / 417500 131056 / 417500 136261 / 417500 138034 / 417500 124747 / 417500 140266 / 417500 135772 / 417500 126086 / 417500 127798 / 417500 138743 / 417500
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
test_01 subtask_01_01.txt
test_02 subtask_01_02.txt
test_03 subtask_01_03.txt
test_04 subtask_01_04.txt
test_05 subtask_01_05.txt
test_06 subtask_01_06.txt
test_07 subtask_01_07.txt
test_08 subtask_01_08.txt
test_09 subtask_01_09.txt
test_10 subtask_01_10.txt
test_11 subtask_01_11.txt
test_12 subtask_01_12.txt
test_13 subtask_01_13.txt
test_14 subtask_01_14.txt
test_15 subtask_01_15.txt
test_16 subtask_01_16.txt
test_17 subtask_01_17.txt
test_18 subtask_01_18.txt
test_19 subtask_01_19.txt
test_20 subtask_01_20.txt
test_21 subtask_01_21.txt
test_22 subtask_01_22.txt
test_23 subtask_01_23.txt
test_24 subtask_01_24.txt
test_25 subtask_01_25.txt
test_26 subtask_01_26.txt
test_27 subtask_01_27.txt
test_28 subtask_01_28.txt
test_29 subtask_01_29.txt
test_30 subtask_01_30.txt
test_31 subtask_01_31.txt
test_32 subtask_01_32.txt
test_33 subtask_01_33.txt
test_34 subtask_01_34.txt
test_35 subtask_01_35.txt
test_36 subtask_01_36.txt
test_37 subtask_01_37.txt
test_38 subtask_01_38.txt
test_39 subtask_01_39.txt
test_40 subtask_01_40.txt
test_41 subtask_01_41.txt
test_42 subtask_01_42.txt
test_43 subtask_01_43.txt
test_44 subtask_01_44.txt
test_45 subtask_01_45.txt
test_46 subtask_01_46.txt
test_47 subtask_01_47.txt
test_48 subtask_01_48.txt
test_49 subtask_01_49.txt
test_50 subtask_01_50.txt
Case Name Status Exec Time Memory
subtask_01_01.txt AC 473 ms 44788 KB
subtask_01_02.txt AC 384 ms 42788 KB
subtask_01_03.txt AC 400 ms 40604 KB
subtask_01_04.txt AC 369 ms 42760 KB
subtask_01_05.txt AC 387 ms 41180 KB
subtask_01_06.txt AC 401 ms 39660 KB
subtask_01_07.txt AC 404 ms 41900 KB
subtask_01_08.txt AC 379 ms 42472 KB
subtask_01_09.txt AC 400 ms 41476 KB
subtask_01_10.txt AC 401 ms 41764 KB
subtask_01_11.txt AC 379 ms 43004 KB
subtask_01_12.txt AC 384 ms 40692 KB
subtask_01_13.txt AC 408 ms 38928 KB
subtask_01_14.txt AC 362 ms 42388 KB
subtask_01_15.txt AC 381 ms 44852 KB
subtask_01_16.txt AC 408 ms 40512 KB
subtask_01_17.txt AC 401 ms 40676 KB
subtask_01_18.txt AC 386 ms 42776 KB
subtask_01_19.txt AC 399 ms 40844 KB
subtask_01_20.txt AC 361 ms 42972 KB
subtask_01_21.txt AC 387 ms 40248 KB
subtask_01_22.txt AC 399 ms 41052 KB
subtask_01_23.txt AC 429 ms 40424 KB
subtask_01_24.txt AC 374 ms 42652 KB
subtask_01_25.txt AC 384 ms 41728 KB
subtask_01_26.txt AC 362 ms 40004 KB
subtask_01_27.txt AC 425 ms 38856 KB
subtask_01_28.txt AC 384 ms 40476 KB
subtask_01_29.txt AC 372 ms 40816 KB
subtask_01_30.txt AC 405 ms 38884 KB
subtask_01_31.txt AC 370 ms 42732 KB
subtask_01_32.txt AC 390 ms 40104 KB
subtask_01_33.txt AC 381 ms 40908 KB
subtask_01_34.txt AC 369 ms 42284 KB
subtask_01_35.txt AC 407 ms 41620 KB
subtask_01_36.txt AC 403 ms 40100 KB
subtask_01_37.txt AC 391 ms 41488 KB
subtask_01_38.txt AC 379 ms 43140 KB
subtask_01_39.txt AC 375 ms 43172 KB
subtask_01_40.txt AC 398 ms 42268 KB
subtask_01_41.txt AC 377 ms 39300 KB
subtask_01_42.txt AC 397 ms 38788 KB
subtask_01_43.txt AC 406 ms 40992 KB
subtask_01_44.txt AC 394 ms 39612 KB
subtask_01_45.txt AC 406 ms 40420 KB
subtask_01_46.txt AC 386 ms 39172 KB
subtask_01_47.txt AC 391 ms 41104 KB
subtask_01_48.txt AC 411 ms 40780 KB
subtask_01_49.txt AC 418 ms 40548 KB
subtask_01_50.txt AC 379 ms 39932 KB