Informatică, întrebare adresată de maramaraa10, 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 2se afișează pe ecran valoarea 144(10 lei pentru modelul de lățime 1 cm și câte 1∙1lei 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 treielemente grafice care îl au la bază, respectiv 10 lei pentru modelul de lățime 7 cm și câte 7∙7lei pentru fiecare dintre cele două elemente grafice care îl au la bază). a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)b. Scrieți programul C/C++ corespunzător algoritmului proiectat.


hrvraciu50: Salut! Poti te rog sa faci si punctul a? In care trebuie sa descriem in limbaj natural algoritmul proiectat si sa justificam eficienta acestuia. Multumesc!
andrei750238: Programul e eficient ca timp de execuție datorita structurii liniare
andrei750238: având complexitatea O(n)
hrvraciu50: Multumesc!
andrei750238: programul e e eficient ca spatiu datorita folosirii vectorului caracteristic V[]

Răspunsuri la întrebare

Răspuns de andrei750238
4

#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();

}

Alte întrebări interesante