Submission #1243695


Source Code Expand

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>

using namespace std;

const char *YES = "YES";
const char *NO = "NO";

int main()
{
    int N, NG1, NG2, NG3;
    if (scanf("%d%d%d%d", &N, &NG1, &NG2, &NG3) < 4) return 0;

    if (N == NG1 || N == NG2 || N == NG3)
    {
        printf("%s\n", NO);
        return 0;
    }

    int bkN;
    int bkCnt;
    int cnt = 0;
    while (N > 0)
    {
        int mns3 = N - 3;
        if (mns3 == NG1 || mns3 == NG2 || mns3 == NG3)
        {
            int mns2 = N - 2;
            if (mns2 == NG1 || mns2 == NG2 || mns2 == NG3)
            {
                int mns1 = N - 1;
                if (mns1 == NG1 || mns1 == NG2 || mns1 == NG3)
                {
                    printf("%s\n", NO);
                    return 0;
                }
                else
                {
                    if (mns1 - 3 != NG1 || mns1 - 3 != NG2 || mns1 - 3 != NG3)
                    {
                        N = mns1 - 3;
                        cnt++;
                        cnt++;
                    }
                    else if (mns1 - 2 != NG1 || mns1 - 2 != NG2 || mns1 - 2 != NG3)
                    {
                        N = mns1 - 2;
                        cnt++;
                        cnt++;
                    }
                    else if (mns1 - 1 != NG1 || mns1 - 1 != NG2 || mns1 - 1 != NG3)
                    {
                        N = mns1 - 1;
                        cnt++;
                        cnt++;
                    }
                    else
                    {
                        printf("%s\n", NO);
                        return 0;
                    }
                }
            }
            else
            {
                if (mns2 - 3 != NG1 && mns2 - 3 != NG2 && mns2 - 3 != NG3)
                {
                    N = mns2 - 3;
                    cnt++;
                    cnt++;
                }
                else if (mns2 - 2 != NG1 && mns2 - 2 != NG2 && mns2 - 2 != NG3)
                {
                    N = mns2 - 2;
                    cnt++;
                    cnt++;
                }
                else if (mns2 - 1 != NG1 && mns2 - 1 != NG2 && mns2 - 1 != NG3)
                {
                    N = mns2 - 1;
                    cnt++;
                    cnt++;
                }
                else
                {
                    int mns1 = N - 1;
                    if (mns1 == NG1 || mns1 == NG2 || mns1 == NG3)
                    {
                        printf("%s\n", NO);
                        return 0;
                    }
                    else
                    {
                        if (mns1 - 3 != NG1 || mns1 - 3 != NG2 || mns1 - 3 != NG3)
                        {
                            N = mns1 - 3;
                            cnt++;
                            cnt++;
                        }
                        else if (mns1 - 2 != NG1 || mns1 - 2 != NG2 || mns1 - 2 != NG3)
                        {
                            N = mns1 - 2;
                            cnt++;
                            cnt++;
                        }
                        else if (mns1 - 1 != NG1 || mns1 - 1 != NG2 || mns1 - 1 != NG3)
                        {
                            N = mns1 - 1;
                            cnt++;
                            cnt++;
                        }
                        else
                        {
                            printf("%s\n", NO);
                            return 0;
                        }
                    }
                }
            }
        }
        else
        {
            N = mns3;
            cnt++;
        }

        if (cnt > 100)
        {
            printf("%s\n", NO);
            return 0;
        }
    }

    printf("%s\n", YES);
    return 0;
}

Submission Info

Submission Time
Task C - 123引き算
User ShinjiSHIBATA
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3978 Byte
Status WA
Exec Time 1 ms
Memory 128 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 29
WA × 2
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 1 ms 128 KB
sample_03.txt AC 1 ms 128 KB
test_143_142_141_140.txt AC 1 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 1 ms 128 KB
test_231_77_78_80.txt AC 1 ms 128 KB
test_235_124_126_125.txt AC 1 ms 128 KB
test_253_45_47_48.txt AC 1 ms 128 KB
test_297_223_224_225.txt WA 1 ms 128 KB
test_297_294_292_290.txt AC 1 ms 128 KB
test_297_297_30_83.txt AC 1 ms 128 KB
test_297_3_43_72.txt AC 1 ms 128 KB
test_298_125_123_124.txt WA 1 ms 128 KB
test_298_293_295_291.txt AC 1 ms 128 KB
test_298_298_4_8.txt AC 1 ms 128 KB
test_298_36_72_98.txt AC 1 ms 128 KB
test_298_55_3_43.txt AC 1 ms 128 KB
test_298_92_91_295.txt AC 1 ms 128 KB
test_299_200_151_65.txt AC 1 ms 128 KB
test_299_240_35_154.txt AC 1 ms 128 KB
test_299_300_299_298.txt AC 1 ms 128 KB
test_299_33_242_151.txt AC 1 ms 128 KB
test_299_56_57_58.txt AC 1 ms 128 KB
test_299_66_132_198.txt AC 1 ms 128 KB
test_300_271_44_68.txt AC 1 ms 128 KB
test_300_299_298_296.txt AC 1 ms 128 KB
test_300_30_99_183.txt AC 1 ms 128 KB
test_300_4_5_6.txt AC 1 ms 128 KB
test_84_34_64_36.txt AC 1 ms 128 KB