Para resolver esse problema, basta acumular os resultados de Maria e João para cada jogo, lembrando de zerar o placar a cada caso de teste.
#include <stdio.h>
int main(){
int N, R, maria, joao;
while(scanf("%d", &N)){
if(!N) break;
maria = 0, joao = 0;
for(int i = 0; i < N; ++i){
scanf("%d", &R);
if(R) ++joao;
else ++maria;
}
printf("Mary won %d times and John won %d times\n", maria, joao);
}
return 0;
}
#include <iostream>
using namespace std;
int main(){
int N, R, maria, joao;
while(cin >> N){
if(!N) break;
maria = 0, joao = 0;
for(int i = 0; i < N; ++i){
cin >> R;
if(R) ++joao;
else ++maria;
}
cout << "Mary won " << maria << " times and John won " << joao << " times" << endl;
}
return 0;
}
var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.split('\n');
while(lines.length){
let N = parseInt(lines.shift());
if(!N) break;
let maria = lines.shift().trim().split(" ").map((x) => parseInt(x)).reduce((acc, curr) => (!curr ? acc + 1 : acc), 0);
let joao = N - maria;
console.log(`Mary won ${maria} times and John won ${joao} times`);
}
while True:
try:
N = int(input())
R = [int(x) for x in input().strip().split(' ')]
maria, joao = 0, 0
for jogo in R:
if(jogo == 0):
maria += 1
else:
joao += 1
print(f"Mary won {maria} times and John won {joao} times")
except EOFError:
break