fbpx

Problema #1754 – Munti – Rezolvari PBInfo

de Mihai-Alexandru

Vrăjitorul Arpsod își dorește să își reamenajeze habitatul. În habitatul acestuia există N munți, fiecare cu o înălțime cunoscută. Fiind un tip cu un foarte dezvoltat simț estetic, el își dorește să remodeleze cei N munți astfel încât să obțină un număr maxim de munți cu aceeași înălțime.

Arpsod are la îndemână o magie ce funcționează astfel: alege oricare doi munți, pe primul îl crește cu o unitate iar pe al doilea îl scade cu o unitate. Un munte poate ajunge la înălțimi negative ( practic se transformă într-o groapă ).

Arpsod își poate folosi magia de un număr infinit de ori.

Cerința

Vrăjitorul vă cere să determinați numărul maxim de munți ce pot fi aduși la o înălțime egală.

Date de intrare

Pe prima linie a fișierului munti.in se va afla numărul natural N, reprezentând numărul de munți existenți. Pe cea de-a doua linie se vor afla N valori naturale separate prin spațiu, reprezentând înălțimea inițială a fiecărui munte.

Date de ieșire

Fișierul munti.out va conține, pe prima și singura linie a fișierului, numărul maxim de munți ce pot fi aduși la o înălțime egală.

Restricții și precizări

  • 1 ≤ N ≤ 1.000.000
  • 1 ≤ înălțimea inițială ≤ 1.000.000.000

Exemplu

munti.in

4
2 6 2 2

munti.out

4

Explicație

Toți munții pot fi aduși la înălțime 3, la fiecare pas scădem o unitate din muntele de înălțime 6 și adăugăm la un munte de înălțime 2.

#include <bits/stdc++.h>
using namespace std;

ifstream cin("munti.in");
ofstream cout("munti.out");

int main()
{
    int n;
    cin >> n;
    int x;
    long long int s=0;
    for(int i = 0 ; i < n ; ++i)
    {
        cin >> x;
        s+=x;
    }
    if(s%n==0)
    cout << n;
    else
    cout << n-1;
}
Comentarii

S-ar putea sa iti placa