Advertisement
xTheEc0

Bandomasis II (Salama 2015m)

Jan 20th, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. /*
  2. 14
  3. 4 1 25
  4. 4 1 13
  5. 4 2 15
  6. 4 2 25
  7. 3 2 42
  8. 3 2 25
  9. 4 1 25
  10. 3 1 25
  11. 4 1 25
  12. 3 1 42
  13. 3 1 25
  14. 3 1 36
  15. 4 1 24
  16. 4 1 15
  17. */
  18. #include <iostream>
  19. #include <iomanip>
  20. #include <cmath>
  21. #include <fstream>
  22. using namespace std;
  23.  
  24. const char duomF[] = "U1.txt";
  25. const char rezF[] = "U1rez.txt";
  26. const int CMax = 101;
  27.  
  28. struct batai
  29. {
  30.     int vyrK;
  31.     int vyrD;
  32.     int motK;
  33.     int motD;
  34. };
  35.  
  36. void skaitymas(batai A[], int &n)
  37. {
  38.     ifstream df(duomF);
  39.     int lytis; // Kintamasis nustatys ar batai yra moteriski ar vyriski.
  40.     int koja; // Kintamasis nustatys ar batai tinka kairei ar desinei kojai.
  41.     int indeksas; // Naudosim bato dydi kaip indeksa.
  42.  
  43.     df >> n;
  44.     for (int i = 0; i < n; i++)
  45.     {
  46.         df >> lytis;
  47.         if (lytis == 3)
  48.         {
  49.             df >> koja;
  50.             if (koja == 1)
  51.             {
  52.                 df >> indeksas;
  53.                 A[indeksas].vyrK++;
  54.             }
  55.             else
  56.             {
  57.                 df >> indeksas;
  58.                 A[indeksas].vyrD++;
  59.             }
  60.         }
  61.  
  62.         if (lytis == 4)
  63.         {
  64.             df >> koja;
  65.             if (koja == 1)
  66.             {
  67.                 df >> indeksas;
  68.                 A[indeksas].motK++;
  69.             }
  70.             else
  71.             {
  72.                 df >> indeksas;
  73.                 A[indeksas].motD++;
  74.             }
  75.         }
  76.     }
  77.  
  78.     df.close();
  79. }
  80.  
  81. void reset(batai A[])
  82. {
  83.     for (int i = 0; i < CMax; i++) // Nunulinami masyvai.
  84.     {
  85.         A[i].vyrK = 0;
  86.         A[i].vyrD = 0;
  87.         A[i].motK = 0;
  88.         A[i].motD = 0;
  89.     }
  90. }
  91.  
  92. void sprendimas (batai A[])
  93. {
  94.     int motPora = 0;
  95.     int vyrPora = 0;
  96.  
  97.     for (int j = 0; j < CMax; j++)
  98.     {
  99.         for (int i = 0; i < CMax; i++)
  100.         {
  101.             if ((A[i].vyrK != 0) && (A[i].vyrD != 0)) // Kuriamos vyrisku batu poros.
  102.             {
  103.                 A[i].vyrK--;
  104.                 A[i].vyrD--;
  105.                 vyrPora++;
  106.             }
  107.         }
  108.         for (int i = 0; i < CMax; i++) // Kuriamos moterisku batu poros.
  109.         {
  110.             if ((A[i].motK != 0) && (A[i].motD != 0))
  111.             {
  112.                 A[i].motK--;
  113.                 A[i].motD--;
  114.                 motPora++;
  115.             }
  116.         }
  117.     }
  118.     ofstream rf(rezF); // Spausdinama i faila.
  119.  
  120.     rf<< motPora << endl;
  121.     rf << vyrPora << endl;
  122.  
  123.     rf.close();
  124. }
  125.  
  126. int main()
  127. {
  128.     batai A[CMax];
  129.     int n;
  130.  
  131.     reset(A);
  132.     skaitymas(A, n);
  133.     sprendimas(A);
  134.  
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement