Advertisement
xTheEc0

1. Balsavimo rezultatai (2014m. ITVBE)

May 25th, 2015
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.08 KB | None | 0 0
  1. //1.txt
  2. /*
  3. 6
  4. 15 10 22
  5. 15 40 13
  6. 23 26 26
  7. 110 30 58
  8. 33 33 32
  9. 0 56 0
  10. 2 1 3
  11. */
  12.  
  13. #include <iostream>
  14. #include <iomanip>
  15. #include <fstream>
  16.  
  17. using namespace std;
  18.  
  19. // ----------------------------------------------------------------------------------------------
  20.  
  21. const char duomF[] = "1.txt";
  22. const char rezF[] = "1rez.txt";
  23. const int CMax = 11; //Imones skyriu skaicius
  24. const int LMax = 4; //Logotipu skaicius
  25.  
  26. // ----------------------------------------------------------------------------------------------
  27.  
  28. void skaitymas(int L1[], int L2[], int L3[], int B[], int &k)
  29. {
  30.     ifstream df(duomF);
  31.     int v = 0;
  32.     df >> k;
  33.     for (int i = 1; i <= k; i++)
  34.     {
  35.         df >> L1[v] >> L2[v] >> L3[v];
  36.         v += 1;
  37.     }
  38.     df >> B[1] >> B[2] >> B[3];
  39.  
  40.     df.close();
  41. }
  42.  
  43. void taskaiSkyriuje(int L1[], int L2[], int L3[], int k, int taskai[]) //Logotipu surinkti balai
  44. {
  45.     taskai[1] = 0; taskai[2] = 0; taskai[3] = 0;
  46.     for(int i = 1; i <= k; i++)
  47.     {
  48.         if ((L1[i] > L2[i]) && (L1[i] > L3[i])) taskai[1] += 4;
  49.         if ((L2[i] > L1[i]) && (L2[i] > L3[i])) taskai[2] += 4;
  50.         if ((L3[i] > L1[i]) && (L3[i] > L2[i])) taskai[3] += 4;
  51.  
  52.         if ((L1[i] == L2[i]) && (L1[i] > L3[i])) {taskai[1] += 2; taskai[2] += 2;}
  53.         if ((L1[i] == L3[i]) && (L1[i] > L2[i])) {taskai[1] += 2; taskai[3] += 2;}
  54.         if ((L2[i] == L3[i]) && (L2[i] > L1[i])) {taskai[2] += 2; taskai[3] += 2;}
  55.     }
  56. }
  57.  
  58. int balsuSuma(int skyriausBalsai[], int k)  //Logotipu tasku suma skyriuje
  59. {
  60.     int balsuSuma = 0;
  61.     for(int i = 0; i < k; i++)  balsuSuma += skyriausBalsai[i];
  62.  
  63.     return balsuSuma;
  64. }
  65.  
  66. int laimejo(int B[], int taskai[])
  67. {
  68.     int laimetojas;
  69.     int max = 0;
  70.  
  71.     if ((taskai[1] == taskai[2]) || (taskai[1] == taskai[3]) || (taskai[2] == taskai[3]))
  72.     {
  73.         taskai[1] += B[1];
  74.         taskai[2] += B[2];
  75.         taskai[3] += B[3];
  76.     }
  77.  
  78.     for (int i = 1; i < 4; i++)
  79.     {
  80.         if(taskai[i] > max)
  81.         {
  82.             max = taskai[i];
  83.             laimetojas = i;
  84.         }
  85.     }
  86.  
  87.     return laimetojas;
  88. }
  89.  
  90. // ----------------------------------------------------------------------------------------------
  91.  
  92. int main()
  93. {
  94.     int L1[CMax], L2[CMax], L3[CMax];       // Skyriu balsavimo uz logotipa rezultatai.
  95.     int balsai[4], taskai[4];
  96.     int B[LMax];                            // Direktoriu duoti taskai
  97.     int k;                                  // Skyriu skaicius
  98.  
  99.     skaitymas(L1, L2, L3, B, k);
  100.     balsai[1] = balsuSuma(L1, k);           // Pirmo logotipo tasku suma
  101.     balsai[2] = balsuSuma(L2, k);           // Antro logotipo tasku suma
  102.     balsai[3] = balsuSuma(L3, k);           // Trecio logotipo tasku suma
  103.     taskaiSkyriuje(L1, L2, L3, k, taskai);  // Logotipu surinkti taskai
  104.    
  105.    // Rezultatu razymas i faila.
  106.     ofstream rf(rezF);
  107.     rf << balsai[1] << " " << balsai[2] << " " << balsai[3] << endl;    // Surinkti balsai
  108.     rf << taskai[1] << " " << taskai[2] << " " << taskai[3] << endl;    // Surinkti taskai
  109.     rf << laimejo(B, taskai) << endl;       // Laimetojas
  110.     rf.close();
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement