Advertisement
adwas33

Program na olimpiade

Oct 15th, 2019
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <utility>
  4. #include <fstream>
  5. #include <windows.h>
  6. #include <cstdlib>
  7. #include <stdlib.h>
  8. #include <ctime>
  9. #include <stdio.h>
  10. #include "random"
  11. using namespace std;
  12.  
  13.  
  14. thread_local std::mt19937 gen{std::random_device{}()};
  15.  
  16. template<typename T>
  17. T random(T min, T max) {
  18.     return std::uniform_int_distribution<T>{min, max}(gen);
  19. }
  20. class para{
  21.  
  22. public:
  23.     int ilosc_skarpet=0;
  24.     int czy_para(int ile_jest,int para)
  25.     {
  26.         if(ile_jest%2==0)
  27.         {
  28.             return (para+1);
  29.         }
  30.         else return para;
  31.     }
  32.  
  33. };
  34.  
  35. int main()
  36. {
  37.     int nr_testu=0;
  38.     int ile_testow;
  39.     cin>>ile_testow;
  40.  
  41.     while(nr_testu!=ile_testow){
  42.         int czarne=50,
  43.         brazowe=40,
  44.         zielone=30,
  45.         niebieskie=20;
  46.         nr_testu++;
  47.     para czarne_pary;
  48.     para brazowe_pary;
  49.     para zielone_pary;
  50.     para niebieskie_pary;
  51.     int iczarne_pary=0;
  52.     int ibrazowe_pary=0;
  53.     int izielone_pary=0;
  54.     int iniebieskie_pary=0;
  55.     int ile_skarpet_lacznie=0;
  56.    cout<<"Zaczynam dobieranie par ! "<<endl;
  57.     while(iczarne_pary+ibrazowe_pary+izielone_pary+iniebieskie_pary<20)
  58.     {
  59.  
  60.         ile_skarpet_lacznie++;
  61.         int maksymalna_ilosc_do_losowania=czarne+brazowe+zielone+niebieskie;
  62.         int losowa=random(0,maksymalna_ilosc_do_losowania);
  63.             if(losowa<=czarne)
  64.             {
  65.                 cout<<" Dobrano czarna skarpete "<<endl;
  66.                 czarne_pary.ilosc_skarpet++;
  67.                 czarne--;
  68.                iczarne_pary=czarne_pary.czy_para(czarne_pary.ilosc_skarpet,iczarne_pary);
  69.  
  70.                Sleep(10);
  71.  
  72.             }else  if(losowa>czarne&&losowa<=czarne+brazowe)
  73.             {
  74.                 cout<<" Dobrano brazowa skarpete "<<endl;
  75.                 brazowe_pary.ilosc_skarpet++;
  76.                brazowe--;
  77.                 ibrazowe_pary=brazowe_pary.czy_para(brazowe_pary.ilosc_skarpet,ibrazowe_pary);
  78.                Sleep(10);
  79.  
  80.  
  81.             }else  if(losowa>czarne+brazowe&&losowa<=czarne+brazowe+zielone)
  82.             {
  83.                 cout<<" Dobrano zielana skarpete "<<endl;
  84.                 zielone_pary.ilosc_skarpet++;
  85.                zielone--;
  86.                 izielone_pary=zielone_pary.czy_para(zielone_pary.ilosc_skarpet,izielone_pary);
  87.                Sleep(10);
  88.  
  89.  
  90.             }else  if(losowa>czarne+brazowe+zielone&&losowa<=czarne+brazowe+zielone+niebieskie)
  91.             {
  92.                 cout<<" Dobrano niebieskie skarpete "<<endl;
  93.                 niebieskie_pary.ilosc_skarpet++;
  94.                 niebieskie--;
  95.                iniebieskie_pary=niebieskie_pary.czy_para(niebieskie_pary.ilosc_skarpet,iniebieskie_pary);
  96.                 Sleep(10);
  97.  
  98.             }
  99.  
  100.     }
  101.    {
  102.     cout<<endl<<"Zapisuje w pliku tekstowym "<<endl;
  103.     fstream Testyc;
  104.     Testyc.open("G:\\Qt projekty\\Prawdopodobienstwo_index_AGH_Warunek_Najgorszy\\Testy.txt",ios::out|ios::app);
  105.  
  106.         Testyc<<endl<<"Nr testu "<<nr_testu<<endl;
  107.         Testyc<<"Liczba czarnych to "<<czarne_pary.ilosc_skarpet<<endl;
  108.         Testyc<<"Liczba brazowych to "<<brazowe_pary.ilosc_skarpet<<endl;
  109.         Testyc<<"Liczba zielonych to "<<zielone_pary.ilosc_skarpet<<endl;
  110.         Testyc<<"Liczba niebieskie to "<<niebieskie_pary.ilosc_skarpet<<endl;
  111.         Testyc<<"Lacznie "<<endl<<
  112.                 ile_skarpet_lacznie;
  113.         Testyc.close();
  114.  
  115.    cout<<endl<<endl<<endl<<endl<<"Koniec petli , potrzeba bylo "<<ile_skarpet_lacznie<<" skarpet "<<endl;
  116.     cout<<"Podam teraz ilosc wszyskich par wszystkich skapet "<<endl;
  117.      cout<<"Czarnych bylo "<<czarne_pary.ilosc_skarpet<<" a par bylo "<<iczarne_pary<<endl;
  118.       cout<<"Brazowych bylo "<<brazowe_pary.ilosc_skarpet<<" a par bylo "<<ibrazowe_pary<<endl;
  119.        cout<<"Zielonych bylo "<<zielone_pary.ilosc_skarpet<<" a par bylo "<<izielone_pary<<endl;
  120.         cout<<"Niebieskich bylo "<<niebieskie_pary.ilosc_skarpet<<" a par bylo "<<iniebieskie_pary<<endl;
  121.         Sleep(2000);
  122.         cout<<endl<<endl<<endl<<endl<<"Nastąpi czyszczenie konsoli ";
  123.  
  124.    system("cls");
  125.     }
  126.  
  127.     }/* fstream Testyc;
  128.     Testyc.open("Sprawdzarka.txt",ios::in)
  129.     if(Testyc.good()==false)
  130.     {
  131.         cout<<"Coś z&&&&&& przy pliku xD ";
  132.         exit(0);
  133.     }
  134.    
  135. */
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement