Programação Competitiva

Handebol [Maratona 2014]

Questão da Maratona de Programação da SBC de 2014, sub-regional Brasil (primeira fase), questão H. Link para o caderno de prova.

Frustrado e desanimado com os resultados de sua equipe de futebol, o Super Brasileiro Clube resolveu investir na equipe de handebol. Para melhor avaliar os atletas, os técnicos identificaram que seria útil analisar a regularidade dos jogadores. Especificamente, eles estão interessados em saber quantos jogadores fizeram gols em todas as partidas.

Como o volume de dados e muito grande, eles gostariam de ter um programa de computador para realizar essa contagem.

Entrada

A primeira linha da entrada contém dois inteiros N e M (1 <= N <= 100 e 1 <= M <= 100), indicando respectivamente o número de jogadores e o número de partidas. Cada uma das N linhas seguintes descreve o desempenho de um jogador: a i-ésima linha contém M inteiros Xj (0 <= Xj <= 100, para 1 <= j <= M), informando o número de gols do i-ésimo jogador em cada partida.

Saída

Seu programa deve produzir uma única linha, contendo um único inteiro, o número de jogadores que fizeram gols em todas as partidas.

Exemplo

Entrada Saída
5 3

0 0 0

1 0 5

0 0 0

0 1 2

1 1 0

0

 

 

 

 

 

12 5

4 4 2 3 7

0 0 0 1 0

7 4 7 0 6

1 2 3 3 2

0 0 0 0 0

4 0 9 10 10

0 1 0 0 0

1 2 0 2 3

10 10 10 1 0

0 3 3 3 4

10 10 0 10 10

1 1 2 0 9

2

 

 

 

 

 

 

 

 

 

 

 

 

Solução em C++

#include <iostream>
using namespace std;

int main() {
    int jogadores, partidas, i, j, naoMarcou=0, cont;

    cin >> jogadores; //leitura da quantidade de jogadores
    cin >> partidas; //leitura da quantidade de partidas
    int gols[jogadores][partidas];

    //para cada jogador, determina quantos gols por partida ele fez    
    for(i=0; i<jogadores; i++) {
   	for(j=0; j<partidas; j++) {
		cin >> gols[i][j];
	}
    }

    //determina quem fez gols em todas as partidas
    for(i=0; i<jogadores; i++) {
	cont = 0;
	for(j=0; j<partidas; j++) {
		if (gols[i][j] == 0) { cont++; }
   	}
	if (cont == 0) { naoMarcou++; }
    }
    cout << naoMarcou;

    return 0;
}

Veja a execução online: http://ideone.com/e.js/spk8Fi

Solução em Python

cont = 0
jogadores = int(input()) #leitura da quantidade de jogadores
partidas = int(input())  #leitura da quantidade de partidas

gols = [0]*jogadores
for i in range(jogadores):
    gols[i] = [0] * partidas
    
#para cada jogador, determina quantos gols por partida ele fez    
for i in range(jogadores):
    for j in range(partidas):
        gols[i][j] = int(input())


#determina quem fez gols em todas as partidas
for i in range(jogadores):
    naoFezGol = False
    for j in range(partidas):
        if gols[i][j] == 0:
            naoFezGol = True
    if naoFezGol == False:
        cont = cont + 1

print cont

Veja a execução online: http://www.codeskulptor.org/#user41_lIxX3O3nQB_0.py

 

Sair da versão mobile