codeforces1472D Juego par-impar (codicioso)


Solución del problema del portal : La idea de este problema es muy simple, para A lice AliceEn el caso de A l i c e , elegirá el mayor número par o tirará el mayor número impar de los demás. Si este no es el caso, sufrirá. Una es que no elige el más grande de los números pares y elige el más pequeño El número par grande esBob Bob¿No sería una pérdida si B o b lo tirara ? Por otro lado, puso aBob BobB o b lanza el más grande, luegoB ob BobB o b solo será más pequeño. Ahora hay que decidir si elegir el número par más grande o lanzar el número impar más grande. Debe ser el más grande de los dos números, porque sufrirás si no lo haces. la segunda es que los números impares son demasiado grandes, por lo que no los desecha. El procesamiento oficial es muy inteligente, cada vez se mira el más grande y se usa una variable para registrarlo.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    
    
    int T;
    cin >> T;
    while (T--) {
    
    
        int n;
        cin >> n;
        vector<int> v(n);
        for (auto& x : v) {
    
    
            cin >> x;
        }
        sort(v.rbegin(), v.rend());
        long long a = 0;
        for (int i = 0; i < n; i++) {
    
    
            if (i % 2 == 0) {
    
    
                if (v[i] % 2 == 0) {
    
    
                    a += v[i];
                }
            } else {
    
    
                if (v[i] % 2 != 0) {
    
    
                    a -= v[i];
                }
            }
        }
        cout << (a >= 0 ? a > 0 ? "Alice" : "Tie" : "Bob") <<endl;
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/zhouzi2018/article/details/112771345
Recomendado
Clasificación