Submission #2969305


Source Code Expand

#include <stdio.h>
int ng[3];
int min(int a, int b) {
    return a < b ? a : b;
}
int dfs(int n, int npos) {
    if (npos >= 3) {
        return n / 3 + (n % 3 == 0 ? 0 : 1);
    }
    if (n < ng[npos]) return dfs(n, npos+1);
    int pad = n - ng[npos] - 1;
    int conf1 = 0, conf2 = 0;
    for (int i = 1; npos + i < 3; i++) {
        if (ng[npos] - 1 == ng[npos + i]) conf1 = 1;
        if (ng[npos] - 2 == ng[npos + i]) conf2 = 2;
    }
    if (conf1 && conf2) {
        return 101;
    }
    if (conf2) {
        return pad / 3 + 1 + dfs(ng[npos] - 1, npos + 1) + (pad % 3 == 2 ? 1 : 0);
    }
    if (conf1) {
        return pad / 3 + 1 + dfs(ng[npos] - 2, npos + 1) + (pad % 3 == 0 ? 0 : 1);
    }
    return pad / 3 + 1 + min(dfs(ng[npos]-1,npos+1)+(pad % 3 == 2 ? 1 : 0), dfs(ng[npos]-2,npos+1)+(pad % 3 == 0 ? 0 : 1));
}
int main() {
    int n; scanf("%d%d%d%d", &n, ng, ng+1, ng+2);
    for (int i = 0; i < 3; i++) {
        for (int j = i + 1; j < 3; j++) {
            if (ng[i] < ng[j]) {
                int tmp = ng[i];
                ng[i] = ng[j];
                ng[j] = tmp;
            }
        }
    }
    int npos = 0;
    while (npos < 3 && ng[npos] > n) npos++;
    if (npos < 3 && ng[npos] == n) {
        puts("NO");
        return 0;
    }
    if (dfs(n, npos) > 100) puts("NO");
    else puts("YES");
    return 0;
}

Submission Info

Submission Time
Task C - 123引き算
User touyou
Language C (GCC 5.4.1)
Score 100
Code Size 1396 Byte
Status AC
Exec Time 1 ms
Memory 128 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:29:12: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
     int n; scanf("%d%d%d%d", &n, ng, ng+1, ng+2);
            ^

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 31
Set Name Test Cases
All 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
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 128 KB
sample_02.txt AC 0 ms 128 KB
sample_03.txt AC 0 ms 128 KB
test_143_142_141_140.txt AC 0 ms 128 KB
test_1_1_2_3.txt AC 1 ms 128 KB
test_1_2_3_4.txt AC 1 ms 128 KB
test_200_200_2_3.txt AC 0 ms 128 KB
test_231_77_78_80.txt AC 1 ms 128 KB
test_235_124_126_125.txt AC 0 ms 128 KB
test_253_45_47_48.txt AC 1 ms 128 KB
test_297_223_224_225.txt AC 1 ms 128 KB
test_297_294_292_290.txt AC 1 ms 128 KB
test_297_297_30_83.txt AC 0 ms 128 KB
test_297_3_43_72.txt AC 0 ms 128 KB
test_298_125_123_124.txt AC 1 ms 128 KB
test_298_293_295_291.txt AC 0 ms 128 KB
test_298_298_4_8.txt AC 0 ms 128 KB
test_298_36_72_98.txt AC 0 ms 128 KB
test_298_55_3_43.txt AC 1 ms 128 KB
test_298_92_91_295.txt AC 0 ms 128 KB
test_299_200_151_65.txt AC 1 ms 128 KB
test_299_240_35_154.txt AC 0 ms 128 KB
test_299_300_299_298.txt AC 0 ms 128 KB
test_299_33_242_151.txt AC 1 ms 128 KB
test_299_56_57_58.txt AC 0 ms 128 KB
test_299_66_132_198.txt AC 0 ms 128 KB
test_300_271_44_68.txt AC 0 ms 128 KB
test_300_299_298_296.txt AC 0 ms 128 KB
test_300_30_99_183.txt AC 0 ms 128 KB
test_300_4_5_6.txt AC 0 ms 128 KB
test_84_34_64_36.txt AC 0 ms 128 KB