codeforce ------------- Mancala

Mancala es un juego famoso en el Oriente Medio. Se juega en un tablero que consta de 14 hoyos.
Inicialmente, cada hoyo tiene AIAI piedras. Cuando un jugador hace un movimiento, elige un agujero que contiene un número positivo de piedras. Toma todas las piedras en su interior y luego se redistribuye estas piedras una a una en los próximos agujeros en el sentido contrario a las agujas del reloj.
Tenga en cuenta que los medios sentido contrario a las agujas del reloj si el jugador toma las piedras de la Segunda agujero, que pondrá de un tiro en el (i + 1) (i + 1) -ésimo agujero, a continuación, en el (i + 2) (i + 2) -ésimo, etc. Si se pone una piedra en el 1414-hoyo, el siguiente será puesto en el primer hoyo.
Después del movimiento, el jugador recoge todas las piedras de agujeros que contengan número par de piedras. El número de cálculos recogidos por el jugador es la puntuación, de acuerdo con Resli.
Resli es un famoso jugador de Mancala. Quiere saber la puntuación máxima que se puede obtener después de una única línea move.InputThe contiene 14 números enteros a1, a2, ..., a14a1, a2, ..., a14 (0≤ai≤1090≤ai≤109) - el número de piedras en cada agujero.
Se garantiza que para cualquier ii (1≤i≤141≤i≤14) aiai es cero o impar, y hay al menos una piedra en el board.OutputOutput un entero, la puntuación máxima posible después de un movimiento.
Ejemplos
de entrada
0 1 1 0 0 0 0 0 0 7 0 0 0 0
Salida
4
Entrada
5 1 1 1 1 0 0 0 0 0 0 0 0 0
Salida
8
NotaEn el primer caso de prueba del tablero después del movimiento del agujero con 77 piedras se parecerá 1 2 2 0 0 0 0 0 0 0 1 1 1 1. A continuación, el jugador recoge los números pares y termina con una puntuación igual a 44 .

efecto Título: Un total de 14 dígitos, cada dígito es un número impar, un número se selecciona de entre cualquiera de una, por lo que este número se convierte en 0, pero cada número incrementa secuencialmente por uno detrás de él, hasta la finalización de la adición hasta un 14 Después de la adición se añadió 1
de datos de bits es grande,
largo, largo

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 20;
typedef long long LL;
LL a[N], b[N];
int main(){
 for (int i = 1; i <= 14; i ++)
 cin >> a[i];
 LL maxd = 0;
 for (int i = 1; i <= 14; i ++){
  if (a[i]){
   LL ans = 0;
   memcpy(b, a, sizeof a);
   LL l = b[i] / 14;
   int r = b[i] % 14;
   b[i] = 0;
   for (int j = 1; j <= 14; j ++){
    b[j] += l;
    if (r){
     int k = (i + j) % 14;
     if (k == 0)   k = 14;
     b[k] ++;
     r --;
     }
   }
   for (int i = 1; i <= 14; i ++){
    if (b[i] % 2 == 0)    ans += b[i];
   }
     maxd = max(maxd, ans);
  }
 }
 cout << maxd << endl;
 return 0;
}
Publicados 106 artículos originales · ganado elogios 67 · vistas 5432

Supongo que te gusta

Origin blog.csdn.net/qq_45772483/article/details/104886469
Recomendado
Clasificación