AtCoder Beginner Contest 011

Submission #3980190

Source codeソースコード

import java.io.IOException;
import java.util.NoSuchElementException;

import java.io.InputStream;

import java.io.PrintWriter;

import java.util.HashSet;

@SuppressWarnings("unchecked")
public class Main {
    public static void main(String[] args) throws IOException {
        PrintWriter out = new PrintWriter(System.out);

        int N = nextInt();

        final int[] sub = {3, 2, 1};

        HashSet<Integer> hs = new HashSet<>();

        for (int i = 0; i < sub.length; i++) {
            int x = nextInt();
            hs.add(x);
        }

        boolean flg = true;

        if (hs.contains(N)) flg = false;
        else {
            int cnt = 0;

            while (0 < N) {
                boolean none = true;

                for (int i = 0; i < sub.length; i++) {
                    if (hs.contains(N - sub[i])) continue;

                    none = false;
                    N -= sub[i];
                    cnt++;
                    break;
                }

                if (none || 100 < cnt) {
                    flg = false;
                    break;
                }
            }
        }

        out.println(flg ? "YES" : "NO");

        out.flush();
    }

    // FastScanner start
    static final InputStream in = System.in;
    static final byte[] buffer = new byte[1024];
    static int ptr = 0;
    static int buflen = 0;
    static boolean hasNextByte() {
        if (ptr < buflen) {
            return true;
        } else {
            ptr = 0;
            try {
                buflen = in.read(buffer);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (buflen <= 0) {
                return false;
            }
        }
        return true;
    }
    static int readByte() {
        if (hasNextByte()) return buffer[ptr++];
        else return -1;
    }
    static boolean isPrintableChar(int c) {
        return 33 <= c && c <= 126;
    }
    static boolean hasNext() {
        while (hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++;
        return hasNextByte();
    }
    static String next() {
        if (!hasNext()) throw new NoSuchElementException();
        StringBuilder sb = new StringBuilder();
        int b = readByte();
        while (isPrintableChar(b)) {
            sb.appendCodePoint(b);
            b = readByte();
        }
        return sb.toString();
    }
    static long nextLong() {
        if (!hasNext()) throw new NoSuchElementException();
        long n = 0;
        boolean minus = false;
        int b = readByte();
        if (b == '-') {
            minus = true;
            b = readByte();
        }
        if (b < '0' || '9' < b) {
            throw new NumberFormatException();
        }
        while (true) {
            if ('0' <= b && b <= '9') {
                n *= 10;
                n += b - '0';
            } else if(b == -1 || !isPrintableChar(b)) {
                return minus ? -n : n;
            } else {
                throw new NumberFormatException();
            }
            b = readByte();
        }
    }
    static int nextInt() {
        long nl = nextLong();
        if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE)
            throw new NumberFormatException();
        return (int) nl;
    }
    static double nextDouble() {
        return Double.parseDouble(next());
    }
    // FastScanner end
}

Submission

Task問題 C - 123引き算
User nameユーザ名 ShinjiSHIBATA
Created time投稿日時
Language言語 Java8 (OpenJDK 1.8.0)
Status状態 AC
Score得点 100
Source lengthソースコード長 3520 Byte
File nameファイル名
Exec time実行時間 75 ms
Memory usageメモリ使用量 23252 KB

Test case

Set

Set name Score得点 / Max score Cases
All 100 / 100 sample_01.txt,sample_02.txt,sample_03.txt,test_143_142_141_140.txt,test_1_1_2_3.txt,test_1_2_3_4.txt,test_200_200_2_3.txt,test_231_77_78_80.txt,test_235_124_126_125.txt,test_253_45_47_48.txt,test_297_223_224_225.txt,test_297_294_292_290.txt,test_297_297_30_83.txt,test_297_3_43_72.txt,test_298_125_123_124.txt,test_298_293_295_291.txt,test_298_298_4_8.txt,test_298_36_72_98.txt,test_298_55_3_43.txt,test_298_92_91_295.txt,test_299_200_151_65.txt,test_299_240_35_154.txt,test_299_300_299_298.txt,test_299_33_242_151.txt,test_299_56_57_58.txt,test_299_66_132_198.txt,test_300_271_44_68.txt,test_300_299_298_296.txt,test_300_30_99_183.txt,test_300_4_5_6.txt,test_84_34_64_36.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
sample_01.txt AC 73 ms 20688 KB
sample_02.txt AC 72 ms 21076 KB
sample_03.txt AC 73 ms 19156 KB
test_143_142_141_140.txt AC 73 ms 18644 KB
test_1_1_2_3.txt AC 72 ms 19156 KB
test_1_2_3_4.txt AC 72 ms 20564 KB
test_200_200_2_3.txt AC 71 ms 21204 KB
test_231_77_78_80.txt AC 73 ms 20180 KB
test_235_124_126_125.txt AC 72 ms 19412 KB
test_253_45_47_48.txt AC 74 ms 21076 KB
test_297_223_224_225.txt AC 71 ms 17748 KB
test_297_294_292_290.txt AC 70 ms 17876 KB
test_297_297_30_83.txt AC 72 ms 17492 KB
test_297_3_43_72.txt AC 70 ms 19284 KB
test_298_125_123_124.txt AC 74 ms 20436 KB
test_298_293_295_291.txt AC 72 ms 23252 KB
test_298_298_4_8.txt AC 72 ms 21076 KB
test_298_36_72_98.txt AC 72 ms 20692 KB
test_298_55_3_43.txt AC 72 ms 21076 KB
test_298_92_91_295.txt AC 71 ms 18004 KB
test_299_200_151_65.txt AC 72 ms 18260 KB
test_299_240_35_154.txt AC 72 ms 21076 KB
test_299_300_299_298.txt AC 73 ms 18644 KB
test_299_33_242_151.txt AC 73 ms 17364 KB
test_299_56_57_58.txt AC 73 ms 19028 KB
test_299_66_132_198.txt AC 73 ms 21076 KB
test_300_271_44_68.txt AC 74 ms 20820 KB
test_300_299_298_296.txt AC 75 ms 19028 KB
test_300_30_99_183.txt AC 72 ms 18132 KB
test_300_4_5_6.txt AC 73 ms 18644 KB
test_84_34_64_36.txt AC 72 ms 17364 KB