Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- U2.txt
- /*
- 2 3
- Hermis 6 1 2
- Hera 2 6 6
- */
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- using namespace std;
- const char duomF[] = "U2.txt";
- const char rezF[] = "U2Rez.txt";
- const int CPav = 10;
- // ----------------------------------------------------------------------------------------------
- struct Dievas {
- string vardas; // Dievo vardas
- int taskai; // Surinkti taskai
- int lyginiai; // Lyginiu metimu skaicius
- };
- Dievas *dievai;
- int kaul_sk, diev_sk; // Globalus kintamieji
- // ----------------------------------------------------------------------------------------------
- // Funkcijos
- // Funkcija tikrinanti ar skaicius lyginis
- bool isEven(int number) {
- if ( number % 2 == 0)
- return true;
- else return false;
- }
- // Funkcija kuri apskaiciuoja dievu taskus ir randa laimetoja
- int rastiLaimetoja() {
- int win_points = dievai[0].taskai,
- win_even = dievai[0].lyginiai,
- win_id = 0;
- for (int i = 1; i < diev_sk; i++)
- {
- if (win_points < dievai[i].taskai) // Jeigu laimima tasku persvara
- {
- win_id = i;
- win_points = dievai[i].taskai;
- win_even = dievai[i].lyginiai;
- }
- else if (win_points == dievai[i].taskai && win_even < dievai[i].lyginiai) // Jeigu reikia nustatyti laimetoja pagal lyginiu metimu skaiciu
- {
- win_id = i;
- win_points = dievai[i].taskai;
- win_even = dievai[i].lyginiai;
- }
- }
- return win_id;
- }
- // Funkcija skaitanti is failo
- void skaitymas() {
- ifstream df(duomF);
- char eil[CPav+1]; // char masyvas naudojamas nuskaityti 10 vardo simboliu
- df >> diev_sk; // Dievu skaicius
- df >> kaul_sk; // Kauliuku skaicius
- int points; // Kaupiamas tasku skaicius
- dievai = new Dievas[diev_sk]; // Sukuriamas masyvas kurio dydis yra diev_sk naudojant new.
- for (int i = 0; i < diev_sk; i++)
- {
- df.ignore(80, '\n'); //
- df.get(eil, CPav); // Nuskaito dievo varda
- dievai[i].vardas = eil; // Varda nukelia y masyva
- dievai[i].lyginiai = 0; // Pries rasant reiksme masyvo reiksmes nunulinamos
- dievai[i].taskai = 0; // Pries rasant reiksme masyvo reiksmes nunulinamos
- for (int j = 0; j < kaul_sk; j++)
- {
- df >> points;
- if(isEven(points)) // Tikrinama ar lyginis kauliuko skaicius
- {
- dievai[i].taskai += points; // Jeigu taskai yra lyginiai jie pridedami
- dievai[i].lyginiai++;
- }
- else dievai[i].taskai -= points; // Jeigu taskai ne lyginiai jie atimami
- }
- }
- }
- // Funkcija rasanti atsakyma i faila
- void irasyti(int win) {
- ofstream rf(rezF);
- rf << dievai[win].vardas << " " << dievai[win].taskai;
- rf.close();
- }
- // ----------------------------------------------------------------------------------------------
- int main () {
- skaitymas(); // Nuskaitomas failas
- int win = rastiLaimetoja(); // Randamas nugaletojas
- irasyti(win); // Irasomas atsakymas i faila
- delete[] dievai; // Istrinamas masyvas taupant atminty
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement