Решение задачи Команда с Codeforces

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


Вот и подошел черед олимпиад. Ваня и Егор решили создать свою команду для участия в олимпиаде по программированию. Поскольку они с первого класса вместе, есть надежда, что это хоть как-то поможет ребятам в командной работе.

На каждую командную олимпиаду Ваня берет свои игровые карточки с числами. Он берет карточки исключительно с числами 1 и 0. Ребята — очень суеверны. Они считают, что олимпиада будет для них успешной, если перед ее началом можно разложить все карточки в ряд таким образом, чтобы:

не существовало пары соседних в ряду карточек с нулями;
не существовало тройки карточек, лежащих подряд, на которых записаны единицы.
Сегодня Ваня принес n карточек с нулями и m карточек с единицами. Карточек оказалось так много, что ребята не знают: можно ли разложить все эти карточки описанным способом или нет. Помогите им найти требуемое расположение карточек, или сообщите ребятам, что это невозможно.

Код

#include "bits/stdc++.h"
using namespace std;
int main() {
	int a, b, t, k;
	cin>>b>>a;
	if(b == a + 1) {
		cout<<0;
		b--;
	}
	if(a >= b && a <= 2 * b + 2) {
		if(a > 2 * b)
			t = b;
		else
			t = a - b;
		while(t) {
			cout<<110;
			b--;
			a = a -2;
			t--;
		}
		while(b) {
			cout<<10;
			a--;
			b--;
		}	
		while(a) {
			cout<<1;
			a--;
		}
		cout<<endl;
		return 0;
	}
	cout<<-1<<endl;
}

         

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



Комментарии

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