#include #include // queue #include #include #include #include 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 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 }