Advertisement
MariusPure

it vbe 2007

Oct 23rd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <deque> // queue
  3. #include <array>
  4. #include <fstream>
  5. #include <vector>
  6. #include <algorithm>
  7. using namespace std;
  8. // taip pat rasti vidurki
  9.  
  10. struct person { //sukuriama grybautojo struktura
  11. string name; //vardas
  12. int indexas;
  13. int dien, b, r, l, viso; //dienos, baravykai,raudoniokes, lapai, viso grybu skaicius
  14. };
  15.  
  16. person m[100]; // masyvas
  17. int kiekGrybautoju; // ir taip aisku
  18.  
  19. void getData(person m[], int& kiekGrybautoju)
  20. {
  21.  
  22. ifstream readFile("duom2.txt"); // atidaromas duomenu failas
  23.  
  24. readFile >> kiekGrybautoju; // nuskaitomas grybautoju skaicius
  25. readFile.ignore(); // ignoruojama eilute nes nereikia
  26.  
  27. char laik[15];
  28. int b2 = 0, r2 = 0, l2 = 0;
  29.  
  30. for (int i = 0; i < kiekGrybautoju; i++)
  31. {
  32. readFile.get(laik, 15); // nuskaitomas vardas
  33.  
  34. m[i].name = laik;
  35.  
  36. readFile >> m[i].dien; // nuskaitoma kiekvieno zmogaus grybavimo dienu skaicius;
  37.  
  38. readFile.ignore(); // ignoruojama eilute nes toliau nereikia
  39. m[i].indexas = i;
  40. for (int j = 0; j < m[i].dien; j++) // ciklas jog nuskaityti grybu kiekiui
  41. {
  42. readFile >> b2 >> r2 >> l2; // nuskaitoma j grybavimo diena;
  43.  
  44. m[i].b += b2;//
  45. m[i].r += r2; //> sudedami kiekvienos dienos grybai
  46. m[i].l += l2;//
  47.  
  48. readFile.ignore();
  49. }
  50. m[i].viso += m[i].b + m[i].r + m[i].l; // sudedami kiekvieno grybautojo visi grybai
  51. }
  52.  
  53. readFile.close(); //uzdaromas duomenu failas
  54. }
  55. int getMostM(person m[], int kiekGrybautoju)
  56. {
  57. int did = 0, didIndex = 0;
  58. did = m[0].viso;
  59.  
  60. for (int i = 0; i < kiekGrybautoju; i++)
  61. {
  62. if (m[i].viso > did) {
  63.  
  64. did = m[i].viso;
  65. didIndex = i;
  66. }
  67. }
  68. vector<int> didGrybautojai;
  69. for (int i = 0; i < kiekGrybautoju; i++)
  70. {
  71. if (m[i].viso == did)
  72. {
  73. didGrybautojai.push_back(i);
  74. }
  75.  
  76. }
  77.  
  78. if (didGrybautojai.size() > 1)
  79. {
  80. for (int i = 0; i < didGrybautojai.size(); i++)
  81. {
  82. for (int j = 0; j < didGrybautojai.size(); j++)
  83. {
  84. if (didGrybautojai[i] < didGrybautojai[j]) swap(didGrybautojai[i], didGrybautojai[j]);
  85. }
  86. }
  87. return didGrybautojai[0];
  88. }
  89. else return didIndex;
  90.  
  91.  
  92. return -1;
  93. }
  94. void print(person m[], int kiekGrybautoju)
  95. {
  96. ofstream r("rezult.txt"); // atidaromas duomenu irasomo failas
  97.  
  98. int stipriausias = 0;
  99.  
  100. for (int i = 0; i < kiekGrybautoju; i++)
  101. {
  102. r << m[i].name << m[i].b << " " << m[i].r << " " << m[i].l << endl; //irasomi gauti rezultatai i duomenu irasomo faila
  103. }
  104.  
  105. stipriausias = getMostM(m, kiekGrybautoju); // saukiama funkcija kuri suskaiciuoti daugiausia grybu surinkusi asmeni
  106.  
  107. r << m[stipriausias].name << m[stipriausias].viso; // i faila irasomas daugiausia grubu surinkes asmuo
  108.  
  109. r.close(); // uzdaromas duomenu irasimo failas
  110. }
  111. int main()
  112. {
  113. getData(m, kiekGrybautoju); // calling a function
  114. print(m, kiekGrybautoju); // calling a function
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement