Răspuns :
a) Programul citeste din fisier triplete de numere
si calculeaza suma fiecarui tip de produs in vectorul s,
in acelasi timp afland si suma maxima din vectorul s.
Vectorul s se va parcurge apoi pentru a se contoriza numarul de aparitii
al sumei maxime in variabila k.
Algoritmul este eficient din punct de vedere al timpului de executare
deoarece numerele din fisier sunt citite o singura data
iar vectorul s este reparcurs o singura data
doar pentru contorizarea aparitiilor sumei maxime
rezultand o complexitate liniara O(n) unde n este numarul de triplete din fisier.
b) #include <iostream>
#include <fstream>
using namespace std;
int main() {
int x, y, z, a[100]={0}, k=0, smax=-1;
ifstream f("cheltuieli.in");
while (f>>x>>y>>z) {
s[x]=s[x]+y*z;
if (s[x]>smax) {
smax=s[x];
}
}
f.close():
for (int i=1; i<=100; i++) {
if (s[x]==smax) {
k++;
}
}
cout<<smax<<' '<<k;
return 0;
}