Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 5
- Jonaitis 3 2 3 2
- Petraitis 2 3 2
- Antanaitis 2 4 3
- Kizlaitis 3 2 1 2
- Pranaitis 2 2 2
- 2 6 2
- */
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- using namespace std;
- const char duomF[] = "2.txt";
- const char rezF[] = "rez2.txt";
- const int CPav = 20;
- const int CMax = 501;
- struct bagazas
- {
- string pavarde;
- int bagazoKiekis;
- double bagazoSvoris;
- };
- void skaitymas(bagazas A[], int &n, int &k, int &m, int &x, int &y)
- {
- char eil[CPav+1];
- double tempSvoris;
- ifstream df(duomF);
- df >> n;
- for (int i = 0; i < n; i++)
- {
- df.ignore(80, '\n');
- df.get(eil, CPav);
- A[i].pavarde = eil;
- df >> k;
- A[i].bagazoKiekis = k;
- for (int j = 0; j < k; j++)
- {
- df >> tempSvoris;
- A[i].bagazoSvoris += tempSvoris;
- }
- }
- df >> m >> x >> y;
- df.close();
- }
- void sprendimas(bagazas A[], int n, int m, int x, int y)
- {
- ofstream rf(rezF);
- // Kiek keleiviu turi ne daugiau kaip 'm' bagazo vienetu.
- int counter = 0;
- for (int i = 0; i < n; i++)
- {
- if (A[i].bagazoKiekis <= m)
- {
- counter++;
- }
- }
- rf << counter << endl;
- // Keliu keleiviu bagazo mase virsija 'x' norma.
- counter = 0;
- for (int i = 0; i < n; i++)
- {
- if(A[i].bagazoSvoris > x)
- {
- counter++;
- }
- }
- rf << counter << endl;
- // Keliu keleiviu bagazo mase virsija vidutine bagazo mase.
- counter = 0;
- double vidMase;
- double tempMase = 0;
- for (int i = 0; i < n; i++)
- {
- tempMase += A[i].bagazoSvoris;
- vidMase = tempMase / n;
- }
- for (int i = 0; i < n; i++)
- {
- if (A[i].bagazoSvoris > vidMase)
- {
- counter++;
- }
- }
- rf << counter << endl;
- // Keleiviu vardai, kuriu bagazo mase skiriasi +- y.
- double maxSvoris = 0;
- for (int i = 0; i < n; i++)
- {
- if (A[i].bagazoSvoris > maxSvoris)
- {
- maxSvoris = A[i].bagazoSvoris;
- }
- }
- for (int i = 0; i < n; i++)
- {
- if ((A[i].bagazoSvoris == maxSvoris - y) || (A[i].bagazoSvoris == maxSvoris + y))
- {
- rf << A[i].pavarde << endl;
- }
- }
- rf.close();
- }
- void reset(bagazas A[])
- {
- for (int i = 0; i < CMax; i++)
- {
- A[i].bagazoSvoris = 0;
- }
- }
- int main ()
- {
- bagazas A[CMax];
- int n, k, m, x, y;
- reset(A);
- skaitymas(A, n, k, m, x, y);
- sprendimas(A, n, m, x, y);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement