Решение задачи "Эпическая игра" с Codeforces

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


Семен и Антисемен играют в игру. Изначально каждому игроку дано одно фиксированное целое положительное число, которое не меняется в процессе игры. Семену дано число a, Антисемену дано число b. Также у них есть кучка из n камней. Игроки ходят по очереди, первый ход делает Семен. На своем ходу игрок должен взять из кучки число камней, равное наибольшему общему делителю данного ему числа и количества оставшихся камней в кучке. Проигрывает тот, кто не сможет взять требуемое число камней (по причине того, что в кучке остается строго меньше камней, чем нужно взять).

Ваша задача — по заданным a, b и n определить, кто выиграет в этой игре.

Код

#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b){
	if(a==0){
		return b;
	}
	return gcd(b%a,a);
}
int main(){
	int a,b,n,t=1;
	cin>>a>>b>>n;
	while(n>0){
		t=(t+1)%2;
		if(t==0){
			n-=gcd(n,a);
		} else {
			n-=gcd(n,b);
		}
	}
	cout<<t;
}

         

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


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

Комментарии

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