Rezolvare completă PbInfo #2160 Prize

Am câștigat un concurs și primim la școală foarte foarte multe echipamente pentru un nou laborator. Pentru amenajarea laboratorului am primit și o sală de clasă. Din păcate în sala de clasă există doar o singură priză, în care ar putea fi conectat doar un singur echipament. Cum nu putem reface imediat instalația electrică, am hotărât să utilizăm prelungitoare.

Un prelungitor poate avea una sau mai multe prize în care pot fi conectate echipamente și eventual alte prelungitoare. Evident, pentru ca prelungitorul să poată fi utilizat el trebuie să fie alimentat la curentul electric.

Cerința

Cunoscând configurația prelungitoarelor să se determine numărul maxim de echipamente ce pot fi alimentate la curentul electric.

Date de intrare

Fișierul de intrare prize.in conține pe prima linie numărul natural N, care reprezintă numărul de prelungitoare. Pe următoarele N linii se află N numere naturale nenule, câte un număr pe o linie, reprezentând numărul de prize din fiecare dintre cele N prelungitoare.

Date de ieșire

Fișierul de ieșire prize.out va conține o singură linie pe care va fi scris numărul maxim de echipamente ce pot fi alimentate la curent, utilizând cele N prelungitoare descrise în fișierul de intrare.

Restricții și precizări

  • 1 ≤ N ≤ 1000
  • 1 ≤ numărul de prize dintr-un prelungitor ≤ 5 000 000

Exemplu

prize.in

3
3
2
5

prize.out

8

Explicație

O modalitate de conectare a prelungitoarelor pentru a alimenta la curent echipamente ar fi:

  • punem în priză prelungitorul 3;
  • prelungitorul 1 îl punem în una dintre prizele prelungitorului 3 (mai rămân în prelungitorul 3 patru prize libere pentru echipamente)
  • prelungitorul 2 îl punem în una dintre prizele prelungitorului 1 (mai rămân în prelungitorul 1 două prize libere pentru echipamente).

În total vor exista 4+2+2=8 prize disponibile pentru echipamente.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Prize:

//Emanuela Cerchez
#include <fstream>

using namespace std;
ifstream fin("prize.in");
ofstream fout("prize.out");
int n;
long long int sum;

int main()
{int i, x;
    fin>>n;
    for (i=0; i<n; i++)
        {
            fin>>x;
            sum+=(x-1);
        }
    fout<<sum+1<<'\n';
    fout.close();
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2160 Prize

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2160 Prize de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!