Como dividiremos cada número do vetor por e queremos obter a maior quantidade de inteiros positivos possível, basta testar para e , assim teremos a possibilidade de permanecer com todos os números positivos ou tornar os negativos em positivos. Então, vemos qual das duas possibilidades é melhor ao contar o número de inteiros positivos e negativos no vetor. Após, checamos se duas vezes eles é maior ou igual a . Se for, imprimimos tal , senão, imprimimos .
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
int main(){ | |
int n; | |
cin >> n; | |
int positivos = 0, negativos = 0; | |
for (int i = 1; i <= n; i++){ | |
int a; | |
cin >> a; | |
if (a >= 1) positivos++; | |
else if (a <= -1) negativos++; | |
} | |
if (2*positivos >= n) cout << 1 << "\n"; | |
else if (2*negativos >= n) cout << -1 << "\n"; | |
else cout << 0 << "\n"; | |
return 0; | |
} |