Răspuns :
#include <iostream>
#include <cmath>
using namespace std;
int n, v[100];
int salariu[100];
int media(float suma, float nr){
//Determina media in functie de suma si de numar
//Daca numarul e 0 atunci returneaza 0
if(nr==0) return 0;
//Altfel returneaza media aproximata dupa cerinta
return ceil(suma/nr);
}
int castig(int x){
//Determina in mod recursiv salariul angajatului X
//Determina media castigului subordonatilor :
int i, s=0, nr=0;
for(i=1;i<=n;i++){
if(v[i]==x){
s+=castig(i);
nr++;
}
}
//Returneaza castigul total, adaugand media castigului angajatiolor la salariul de baza
return salariu[x] + media(s,nr);
}
int main(){
int director=0;
//Citeste numarul de angajatilor
cout << "\nNr angajati : ";
cin >> n;
//Citeste vector de tati, determina cine e director
cout << "\nVectori tati : ";
for(int i=1;i<=n;i++){
cin >> v[i];
//Verifica daca e director
if(v[i]==0) director = i;
}
//Citeste salariul de baza a fiecarui angajat
cout << "\nVector salariu : ";
for(int i=1;i<=n;i++) cin >> salariu[i];
//Apeleaza functia pentru a calcula venitul directorului
cout << "\nVenit director : " << castig(director);
}
Vă mulțumim că ați vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.