Algorithm
Problem Name: 2 AD-HOC - beecrowd | 2309
Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2309
Truco
Por OBI - Olimpíada Brasileira de Informática 2006 Brazil
Timelimit: 1
Truco é um jogo de cartas que pode ser jogado por duas ou mais pessoas. Existem diversas variações: o Truco Cego ou Truco Espanhol (popular no sul do Brasil, Argentina, Uruguai e outros países), o Truco Paulista, Capixaba ou Mineiro (variações populares no Brasil), o Truco Índio e o Truco Eteviano. Em geral, é uma disputa de três rodadas (“melhor de três”) para ver quem tem as cartas mais “fortes” (de valor simbólico mais alto).
Adalberto e Bernardete estão jogando uma variação de truco com 40 cartas (foram retirados do baralho todas as cartas de valor 8, 9 e 10, além dos coringas), e o valor simbólico independente do naipe da carta. A ordem de valor simbólico das cartas nessa variação de truco é mostrada abaixo, ordenada da mais “fraca” (mais à esquerda) para a mais “forte” (mais à direita)
4 5 6 7 Q J K A 2 3
Cada partida é disputada em três rodadas. A cada rodada, os jogadores escolhem uma das cartas para mostrar, e vence aquele que tiver a carta com o maior valor simbólico. Em caso de empate (ou seja, os dois apresentarem cartas com os mesmos valores simbólicos), Adalberto vence, pois é mais velho que Bernardete. Vence a partida aquele que vencer o maior número de rodadas.
Depois de algumas partidas, Adalberto e Bernardete estão com dificuldades para saber quem venceu mais partidas, e pediram a sua ajuda.
Sua tarefa é escrever um programa que calcule o número de partidas que cada um dos competidores (Adalberto e Bernardete) venceram.
Entrada
A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A primeira linha da saída possui um inteiro N que indica o número de partidas disputadas entre Adalberto e Bernardete (1 ≤ N ≤ 1000000). As N linhas seguintes contêm cada uma seis inteiros, A1, A2, A3, B1, B2 e B3 , que correspondem às três cartas apresentadas por Adalberto nas rodadas 1, 2 e 3 daquela partida (A1, A2, A3 ∈ {1, 2, 3, 4, 5, 6, 7, 11, 12, 13}), seguidas pelas três cartas apresentadas por Bernardete nas rodadas 1, 2 e 3 da mesma partida (B1, B2, B3 ∈ {1, 2, 3, 4, 5, 6, 7, 11, 12, 13}). Na entrada, o número 1 representa o Ás (A), 11 representa o Valete (J), 12 representa a Dama (Q) e 13 representa o Rei (K).
Saída
Seu programa deve imprimir, na saída padrão, uma única linha, que contém os números de partidas vencidas por Adalberto e por Bernadete, nessa ordem, separados por espaços.
Exemplos de Entrada | Exemplos de Saída |
1 1 2 3 1 3 2 |
1 0 |
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
int main() {
int val[100];
val[4] = 1;
val[5] = 2;
val[6] = 3;
val[7] = 4;
val[12] = 5;
val[11] = 6;
val[13] = 7;
val[1] = 8;
val[2] = 9;
val[3] = 10;
int pt1 = 0, pt2 = 0, n;
scanf("%d", &n);
while (n--) {
int spt1 = 0, spt2 = 0;
int a1, a2, a3, b1, b2, b3;
scanf("%d %d %d %d %d %d", &a1, &a2, &a3, &b1, &b2, &b3);
spt1 += (val[a1] >= val[b1]);
spt1 += (val[a2] >= val[b2]);
spt1 += (val[a3] >= val[b3]);
spt2 += (val[a1] < val[b1]);
spt2 += (val[a2] < val[b2]);
spt2 += (val[a3] < val[b3]);
pt1 += (spt1 > spt2);
pt2 += (spt2 > spt1);
}
printf("%d %d\n", pt1, pt2);
return 0;
}
Copy The Code &
Try With Live Editor
Input
1 2 3 1 3 2
Output