fork download
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. // Declarăm vectorul de frecvență global pentru a fi inițializat automat cu 0
  7. int fr[1001];
  8.  
  9. int main() {
  10. ifstream fin("bac.txt");
  11. int n1, n2, n3, x;
  12.  
  13. // Citim numărul de concurenți pentru fiecare premiu
  14. if (!(fin >> n1 >> n2 >> n3)) {
  15. cout << "nu exista";
  16. return 0;
  17. }
  18.  
  19. // Citim elementele de pe a doua linie direct în vectorul de frecvență
  20. while (fin >> x) {
  21. fr[x]++;
  22. }
  23. fin.close();
  24.  
  25. int p1 = -1, p2 = -1, p3 = -1;
  26. int i = 1000; // Pornim de la prețul maxim posibil
  27.  
  28. // 1. Căutăm prețul pentru premiul I
  29. while (i >= 10 && p1 == -1) {
  30. if (fr[i] >= n1) {
  31. p1 = i;
  32. }
  33. i--;
  34. }
  35.  
  36. // 2. Căutăm prețul pentru premiul al II-lea (strict mai mic decât p1)
  37. while (i >= 10 && p2 == -1) {
  38. if (fr[i] >= n2) {
  39. p2 = i;
  40. }
  41. i--;
  42. }
  43.  
  44. // 3. Căutăm prețul pentru premiul al III-lea (strict mai mic decât p2)
  45. while (i >= 10 && p3 == -1) {
  46. if (fr[i] >= n3) {
  47. p3 = i;
  48. }
  49. i--;
  50. }
  51.  
  52. // Verificăm dacă s-au putut acorda toate cele 3 premii în condițiile date
  53. if (p1 != -1 && p2 != -1 && p3 != -1) {
  54. cout << p1 << " " << p2 << " " << p3;
  55. } else {
  56. cout << "nu exista";
  57. }
  58.  
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 5320KB
stdin
3 2 4 500 25 200 10 200 75 15 10 30 15
stdout
nu exista