Решение задачи Делимость на восемь с Codeforces

Без пояснения   Просмотров: 36


Дано целое неотрицательное число n, запись которого состоит из не более, чем 100 цифр, и не содержит ведущих незначащих нулей.

Нужно определить, можно ли в данном числе вычеркнуть некоторое (возможно нулевое) количество цифр так, чтобы полученное после вычеркивания цифр число содержало хотя бы одну цифру, было неотрицательным, не имело ведущих незначащих нулей и делилось на 8. После вычеркивания переставлять цифры запрещается.
Если решение существует, необходимо вывести его.


Код

#include <iostream>
using namespace std;
int main() {


    string s;
    cin>>s;
    s="00"+s;

    for(int i=0;i<s.size();i++)
    {
    	for(int j=i+1;j<s.size();j++)
    	{
    		for(int k=j+1;k<s.size();k++)
    		{
    			int cur=(s[i]-'0')*100+(s[j]-'0')*10+(s[k]-'0');
    			if(!(cur%8))
    			{
    				cout<<"YES"<<endl;
    				cout<<cur;
    				return 0;
    			}
    		}
    	}
    }
    cout<<"NO";
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться