Informatică, întrebare adresată de magdalenapop, 8 ani în urmă

La proiectarea unui site web se utilizează elemente grafice realizate pe baza unor modele. Fiecare model
este de formă pătrată și oricare două modele distincte au dimensiuni diferite ale laturilor. Toate elementele
grafice realizate pe baza unui anumit model au aceeași formă și aceleași dimensiuni ca ale acestuia. În
vederea asigurării elementelor grafice necesare, pentru fiecare model dintre cele utilizate se plătește o
taxă unică de proiectare, de 10 lei, iar pentru fiecare element grafic realizat pe baza acelui model se
plătește o sumă în lei, egală cu valoarea suprafeței acestuia (aria pătratului), calculată în centimetri pătrați.
Fișierul bac.in conține un șir de cel mult 106 numere naturale din intervalul [1,10], separate prin
câte un spațiu, reprezentând dimensiunile laturilor tuturor elementelor grafice utilizate, date în
centimetri; fiecare termen al șirului corespunde unui element grafic distinct. Se cere să se afișeze pe
ecran suma totală plătită pentru asigurarea elementelor grafice necesare. Proiectați un algoritm eficient
din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele 1 7 2 1 1 2 1 7 2
se afișează pe ecran valoarea 144
(10 lei pentru modelul de lățime 1 cm și câte 1∙1 lei pentru fiecare dintre cele patru elemente grafice
care îl au la bază, 10 lei pentru modelul de lățime 2 cm și câte 2∙2 lei pentru fiecare dintre cele trei
elemente grafice care îl au la bază, respectiv 10 lei pentru modelul de lățime 7 cm și câte 7∙7 lei
pentru fiecare dintre cele două elemente grafice care îl au la bază).

Răspunsuri la întrebare

Răspuns de andrei750238
0

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("bac.in");

bool v[11];

int main(){

   int total=0,x;

   while(f>>x){

       v[x]=1;

       total+=x*x;

   }

   for(int i=1;i<=10;i++){

       if(v[i]) total+=10;

   }

   cout << total;

   f.close();

}


andrei750238: Asta e varianta folosita de mine ieri la simulare. Testata.
Alte întrebări interesante