Advertisement
MartisK

C++ užduotis

Apr 10th, 2019
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. int skaiciuotiSuklijuotasVeliaveles(int &geltonu, int &zaliu, int &raudonu)
  9. {
  10.     int viso = 0;
  11.  
  12.     while (geltonu > 1 && zaliu > 1 && raudonu > 1)
  13.     {
  14.         viso++;
  15.         geltonu -= 2;
  16.         zaliu -= 2;
  17.         raudonu -= 2;
  18.     }
  19.  
  20.     return viso;
  21. }
  22.  
  23. int main()
  24. {
  25.     int juosteliuR = 0, juosteliuG = 0, juosteliuZ = 0, visoVeliaveliu = 0,
  26.         trukstaR = 0, trukstaG = 0, trukstaZ = 0,
  27.         kruveliuKiekis = 0;
  28.  
  29.     ifstream dataFile("U1.txt");
  30.     dataFile >> kruveliuKiekis;
  31.     for (int i = 0; i < kruveliuKiekis; i++)
  32.     {
  33.         char spalva;
  34.         int kiekis;
  35.        
  36.         dataFile >> spalva >> kiekis;
  37.         if (spalva == 'R')
  38.             juosteliuR += kiekis;
  39.         else if (spalva == 'Z')
  40.             juosteliuZ += kiekis;
  41.         else if (spalva == 'G')
  42.             juosteliuG += kiekis;
  43.     }
  44.     dataFile.close();
  45.  
  46.     visoVeliaveliu += skaiciuotiSuklijuotasVeliaveles(juosteliuG, juosteliuZ, juosteliuR);
  47.  
  48.     if (juosteliuG >= juosteliuZ && juosteliuG >= juosteliuR)
  49.     {
  50.         if (juosteliuG % 2 != 0)
  51.             juosteliuG++, trukstaG = 1;
  52.  
  53.         trukstaZ = juosteliuG - juosteliuZ;
  54.         trukstaR = juosteliuG - juosteliuR;
  55.     }
  56.     else if (juosteliuZ >= juosteliuG && juosteliuZ >= juosteliuR)
  57.     {
  58.         if (juosteliuZ % 2 != 0)
  59.             juosteliuZ++, trukstaZ = 1;
  60.  
  61.         trukstaG = juosteliuZ - juosteliuG;
  62.         trukstaR = juosteliuZ - juosteliuR;
  63.     }
  64.     else if (juosteliuR >= juosteliuG && juosteliuR >= juosteliuZ)
  65.     {
  66.         if (juosteliuR % 2 != 0)
  67.             juosteliuR++, trukstaR = 1;
  68.  
  69.         trukstaG = juosteliuR - juosteliuG;
  70.         trukstaZ = juosteliuR - juosteliuZ;
  71.     }
  72.  
  73.     juosteliuG += trukstaG;
  74.     juosteliuZ += trukstaZ;
  75.     juosteliuR += trukstaR;
  76.  
  77.     visoVeliaveliu += skaiciuotiSuklijuotasVeliaveles(juosteliuG, juosteliuZ, juosteliuR);
  78.  
  79.     printf("%d\n", visoVeliaveliu);
  80.     printf("G = %d\n", trukstaG);
  81.     printf("Z = %d\n", trukstaZ);
  82.     printf("R = %d\n", trukstaR);
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement