Advertisement
GerexD

greedy-13

Feb 15th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. /**
  4. Egy vendéglő megnyitó ünnepségén több személy vesz részt. Minden személy kiválaszt egy-egy menüt a rendelkezésre álló menükből.
  5. Mivel a vendéglőnek egyelőre csak egy szakácsa van, a rendeléseket csak rendre tudja teljesíteni, mert egyszerre csak egy menü
  6. elkészítésével tud foglalkozni. Tudva azt, hogy a szakács csak akkor fog neki a főzésnek, ha begyűlt minden rendelés, segítsünk
  7. neki megtalálni az ételek elkészítésésnek egy olyan sorrendjét, hogy a kliensek várakozási ideje minimális legyen.
  8. A menu.be állomány első sorában meg van adva egy természetes szám, ami a kliensek számát jelöli és a következő sorokban egy-egy
  9. szám ami azt jelöli, hogy mennyi idő szükséges egy személy menüjének elkészítéséshez.
  10. Pl. menu.be: 30 40 20 25 60
  11. Eredmény: 86
  12. 3 4 1 2 5
  13. */
  14. using namespace std;
  15. struct rest{
  16. int ido;
  17. }a[50];
  18. void beolvas(rest a[], int &n)
  19. {
  20. ifstream f("menu.be");
  21. f>>n;
  22. for(int i=1;i<=n;i++)
  23. f>>a[i].ido;
  24.  
  25. }
  26. void rendez (rest a[],int n)
  27. {
  28. int jo=1;
  29. int nn=n;
  30. do{
  31. jo=1;
  32. for(int i=1;i<=nn-1;i++)
  33. if(a[i].ido>a[i+1].ido)
  34. {
  35. rest x=a[i];
  36. a[i]=a[i+1];
  37. a[i+1]=x;
  38. jo=0;
  39. }
  40. nn--;
  41. }while(jo==0);
  42. }
  43. void moho( rest a[], int n)
  44. {
  45. int o=0,o1=0;
  46. for(int i=1;i<=n;i++){
  47. o1=o1+a[i].ido;
  48. o=o+o1;
  49. }
  50. cout<<o/5;
  51.  
  52. }
  53. int main()
  54. {
  55. int n;
  56. beolvas(a,n);
  57. rendez(a,n);
  58. moho(a,n);
  59.  
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement