Решение задачи Игра в числа с Acmp

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


Игра в числа ведётся на одномерном массиве целых положительных чисел. Перед началом, жеребьёвкой определяется, кто будет ходить первым (первый игрок), а кто – вторым (второй игрок). Процесс игры состоит в том, что игроки по очереди (сначала первый игрок, затем второй, следом опять первый и так далее) вычёркивают числа из массива. Вычеркнуть можно только число, находящееся в конце или начале оставшегося массива. При этом всегда вычёркивается максимальное число из этих двух. Если первое и последнее числа массива равны, то вычёркивается первое. Игра продолжается до того момента, пока не будут вычеркнуты все числа. Каждое вычеркнутое число идёт в актив тому игроку, который его вычеркнул. После окончания игры каждый игрок суммирует вычеркнутые им числа. Победителем объявляется тот, кто наберет больше очков.

Некоторые игроки поняли, что результат не зависит от стратегии игры, и решили попросить Вас написать программу для получения результата.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int  n, b, s1 = 0, s2 = 0, max = 0, i = 0;;
    cin >> n;
    vector<int> a;
    for(int i = 0; i < n; ++i){
        cin >> b;
        a.push_back(b);
    }
    while(a.size()){
        if(a[0] < a[a.size() - 1]){
                max = a[a.size() - 1];
                a.pop_back();
        }
        else{
            max = a[0];
            a.erase(a.begin());
        }
        if(i % 2==0)
            s1+=max;
        else
            s2+=max;
        ++i;
    }
    cout << s1 << ":" << s2;
    return 0;
}

         

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



Комментарии

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