2015年7月5日 星期日

2015/07/05 Codeforces 550C. Divisibility by Eight

// http://codeforces.com/problemset/problem/550/C
#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

char c[200]; int cn;

int main()
{
    scanf("%s", c);
    cn = strlen(c);

    for(int ci = 0; ci < cn; ci++)
        if( (c[ci]-'0')%8 == 0 )
        {
            puts("YES");
            printf("%c\n", c[ci]);
            return 0;
        }

    for(int ci = 0; ci < cn; ci++)
        for(int cj = ci+1; cj < cn; cj++)
            if( ((c[ci]-'0')*10+c[cj]-'0' )%8 == 0 )
            {
                puts("YES");
                printf("%c%c\n", c[ci], c[cj]);
                return 0;
            }

    for(int ci = 0; ci < cn; ci++)
        for(int cj = ci+1; cj < cn; cj++)
            for(int ck = cj+1; ck < cn; ck++)
                if( ((c[ci]-'0')*100+(c[cj]-'0')*10+c[ck]-'0' )%8 == 0 )
                {
                    puts("YES");
                    printf("%c%c%c\n", c[ci], c[cj], c[ck]);
                    return 0;
                }

    puts("NO");
}

沒有留言:

張貼留言