Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. std::string trash;
  5.  
  6. void clearel(){
  7.     std::cin.clear();
  8.     std::getline(std::cin,trash,'\n');
  9. }
  10.  
  11. int dbevent()
  12. {
  13.     bool badinp;
  14.     int eventdb;
  15.     do
  16.     {
  17.         std::cin >> eventdb;
  18.         badinp = std::cin.fail() || std::cin.peek()!='\n' || eventdb <2 || eventdb>100;
  19.         clearel();
  20.     }while(badinp);
  21.     return eventdb;
  22. }
  23.  
  24. int dbcat()
  25. {
  26.     bool badinp;
  27.     int catdb;
  28.     do{
  29.         std::cin >> catdb;
  30.         badinp = std::cin.fail() || std::cin.peek()!='\n' || catdb <1 || catdb>10;
  31.         clearel();
  32.     }while(badinp);
  33.     return catdb;
  34. }
  35.  
  36. void esemenyek()
  37. {
  38.     int eventdb = dbevent();
  39.     int catdb = dbcat();
  40.     int eventyear[eventdb];
  41.     int eventcategory[eventdb];
  42.     std::string eventid[eventdb];
  43.     std::string catname[catdb];
  44.     std::string vegso;
  45.     int vegsodarab =0 ;
  46.     bool badinp;
  47.     int evegy;
  48.     int evketto;
  49.     for(int i = 0; i < eventdb; i++)
  50.     {
  51.         do
  52.         {
  53.             std::cin >> eventyear[i];
  54.             //int testnovekvo = 0;
  55.            // int testcsokkeno = 0;
  56.            // if(i>=1)
  57.            // {
  58.                 //if(eventyear[i]>=eventyear[i-1])
  59.                // {
  60.                 //    testnovekvo++;
  61.               //  }
  62.               // if(eventyear[i]<=eventyear[i-1])
  63.               //  {
  64.              //       testcsokkeno++;
  65.              //   }
  66.             //}
  67.             badinp = std::cin.fail() || std::cin.peek()!='\n' || eventyear[i] <1 || eventyear[i]>2013; //|| (testcsokkeno < i-1 && testnovekvo<i-1);
  68.             clearel();
  69.         }while(badinp);
  70.         do
  71.         {
  72.             std::cin >> eventcategory[i];
  73.             badinp = std::cin.fail() || std::cin.peek()!='\n' || eventcategory[i] <1 || eventcategory[i]>catdb;
  74.             clearel();
  75.         }while(badinp);
  76.         do
  77.         {
  78.             std::getline(std::cin, eventid[i]);
  79.             badinp =  eventid[i].empty() || std::cin.fail();
  80.             std::cin.clear();
  81.         }while(badinp);
  82.  
  83.     }
  84.     do
  85.     {
  86.         std::cin >> evegy >> evketto;
  87.         badinp = std::cin.fail() || std::cin.peek()!='\n' || evegy <1 || evegy > 2012 || evegy > evketto || evegy == evketto;
  88.         clearel();
  89.     }while(badinp);
  90.     for(int i = 0; i < catdb;i++)
  91.     {
  92.         do
  93.         {
  94.             std::cin >> catname[i];
  95.             badinp =  eventid[i].empty() || std::cin.fail();
  96.             std::cin.clear();
  97.         }while(badinp);
  98.     }
  99.     for(int n = 0; n < catdb; n++)
  100.     {
  101.         int i = 0;
  102.         while(eventcategory[i]!=n+1 && i < eventdb)
  103.         {
  104.             i++;
  105.         }
  106.         if(i == eventdb){
  107.             vegsodarab++;
  108.             if(vegso.empty())
  109.             {
  110.                 vegso = vegso + catname[n];
  111.             }
  112.             else
  113.             {
  114.                 vegso = vegso + " " + catname[n];
  115.             }
  116.         }
  117.     }
  118.     std::cout << vegsodarab <<" ";
  119.     std::cout << vegso << " ";
  120. }
  121.  
  122. int main()
  123. {
  124.     esemenyek();
  125.     return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement