Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <deque> // queue
- #include <array>
- #include <fstream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- // taip pat rasti vidurki
- struct person { //sukuriama grybautojo struktura
- string name; //vardas
- int indexas;
- int dien, b, r, l, viso; //dienos, baravykai,raudoniokes, lapai, viso grybu skaicius
- };
- person m[100]; // masyvas
- int kiekGrybautoju; // ir taip aisku
- void getData(person m[], int& kiekGrybautoju)
- {
- ifstream readFile("duom2.txt"); // atidaromas duomenu failas
- readFile >> kiekGrybautoju; // nuskaitomas grybautoju skaicius
- readFile.ignore(); // ignoruojama eilute nes nereikia
- char laik[15];
- int b2 = 0, r2 = 0, l2 = 0;
- for (int i = 0; i < kiekGrybautoju; i++)
- {
- readFile.get(laik, 15); // nuskaitomas vardas
- m[i].name = laik;
- readFile >> m[i].dien; // nuskaitoma kiekvieno zmogaus grybavimo dienu skaicius;
- readFile.ignore(); // ignoruojama eilute nes toliau nereikia
- m[i].indexas = i;
- for (int j = 0; j < m[i].dien; j++) // ciklas jog nuskaityti grybu kiekiui
- {
- readFile >> b2 >> r2 >> l2; // nuskaitoma j grybavimo diena;
- m[i].b += b2;//
- m[i].r += r2; //> sudedami kiekvienos dienos grybai
- m[i].l += l2;//
- readFile.ignore();
- }
- m[i].viso += m[i].b + m[i].r + m[i].l; // sudedami kiekvieno grybautojo visi grybai
- }
- readFile.close(); //uzdaromas duomenu failas
- }
- int getMostM(person m[], int kiekGrybautoju)
- {
- int did = 0, didIndex = 0;
- did = m[0].viso;
- for (int i = 0; i < kiekGrybautoju; i++)
- {
- if (m[i].viso > did) {
- did = m[i].viso;
- didIndex = i;
- }
- }
- vector<int> didGrybautojai;
- for (int i = 0; i < kiekGrybautoju; i++)
- {
- if (m[i].viso == did)
- {
- didGrybautojai.push_back(i);
- }
- }
- if (didGrybautojai.size() > 1)
- {
- for (int i = 0; i < didGrybautojai.size(); i++)
- {
- for (int j = 0; j < didGrybautojai.size(); j++)
- {
- if (didGrybautojai[i] < didGrybautojai[j]) swap(didGrybautojai[i], didGrybautojai[j]);
- }
- }
- return didGrybautojai[0];
- }
- else return didIndex;
- return -1;
- }
- void print(person m[], int kiekGrybautoju)
- {
- ofstream r("rezult.txt"); // atidaromas duomenu irasomo failas
- int stipriausias = 0;
- for (int i = 0; i < kiekGrybautoju; i++)
- {
- r << m[i].name << m[i].b << " " << m[i].r << " " << m[i].l << endl; //irasomi gauti rezultatai i duomenu irasomo faila
- }
- stipriausias = getMostM(m, kiekGrybautoju); // saukiama funkcija kuri suskaiciuoti daugiausia grybu surinkusi asmeni
- r << m[stipriausias].name << m[stipriausias].viso; // i faila irasomas daugiausia grubu surinkes asmuo
- r.close(); // uzdaromas duomenu irasimo failas
- }
- int main()
- {
- getData(m, kiekGrybautoju); // calling a function
- print(m, kiekGrybautoju); // calling a function
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement