Advertisement
antos944

Untitled

Nov 24th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3.  
  4.  
  5. void dodaj(int *tabRoz, int *tabZak, int iloscOperacji)
  6. {
  7.     int godzinaRozpoczecia;
  8.     int godzinaZakonczenia;
  9.        
  10.     int minutaRozpoczecia;
  11.     int minutaZakonczenia;
  12.    
  13.     char znak;
  14.     std::string temat;
  15.    
  16.     int i;
  17.     for(i =0 ; i < iloscOperacji; i++)
  18.     {
  19.         scanf("%d%c%d%c%d%c%d",&godzinaRozpoczecia,&znak,&minutaRozpoczecia,&znak,&godzinaZakonczenia,&znak,&minutaZakonczenia);
  20.  
  21.         getline(std::cin,temat);
  22.  
  23.         godzinaRozpoczecia*=60;
  24.         godzinaRozpoczecia+=minutaRozpoczecia;
  25.  
  26.         godzinaZakonczenia*=60;
  27.         godzinaZakonczenia+=minutaZakonczenia;
  28.  
  29.         tabRoz[i] = godzinaRozpoczecia;
  30.         tabZak[i] = godzinaZakonczenia;
  31.         }
  32. }
  33.  
  34. void sortuj(int *tabRoz, int *tabZak, int ilOp, int miejsce = 1)
  35. {
  36.     int tmp1 = 0;
  37.     int tmp2 = 0;
  38.     int j,i;
  39.    
  40.     for(i= miejsce; i < ilOp; i++)
  41.     {
  42.             tmp1 = tabRoz[i];
  43.             tmp2 = tabZak[i];
  44.  
  45.             for(j = i - 1; (j >= 0) && (tabRoz[j] > tmp1) || ((tabRoz[j] == tmp1) && (tabZak[j] > tmp2)) ; j-- )
  46.             {
  47.                 tabRoz[j+1] = tabRoz[j];
  48.                 tabZak[j+1] = tabZak[j];
  49.  
  50.             }
  51.             tabRoz[j+1] = tmp1;
  52.             tabZak[j+1] = tmp2;
  53.         }
  54. }
  55.  
  56. int sprawdzanie(int *tabRoz, int *tabZak, int ilOp)
  57. {
  58.     int i = 0;
  59.     int pomocnicza = 0;
  60.     int miejsce = -1;
  61.     int ilWyk = 0;
  62.    
  63.     while(i < ilOp)
  64.     {
  65.         if( pomocnicza > tabRoz[i] && pomocnicza < tabZak[i])
  66.         {
  67.             ilWyk++;
  68.             pomocnicza += 30;
  69.             for( int j = i; j<ilOp; j++)
  70.             {
  71.                 if(tabZak[j] < pomocnicza && tabZak[i] != tabZak[j])
  72.                 {
  73.                     miejsce = j;
  74.                    
  75.                 }
  76.                 if(miejsce != -1)
  77.                 {
  78.                     sortuj(tabRoz,tabZak,ilOp, miejsce+1);
  79.                 }
  80.             }
  81.         }
  82.         else
  83.         if( pomocnicza <= tabRoz[i])
  84.         {
  85.             ilWyk++;
  86.             pomocnicza = tabRoz[i] + 30;
  87.         }
  88.         i++;
  89.     }
  90.     return ilWyk;
  91. }
  92.  
  93. int main()
  94. {
  95.     int iloscDni;
  96.     scanf("%d", &iloscDni);
  97.    
  98.     for(int k = 0; k < iloscDni; k++)
  99.     {
  100.         int iloscOperacji;
  101.         scanf("%d", &iloscOperacji);
  102.            
  103.         int tablicaRozpoczec[iloscOperacji];
  104.         int tablicaZakonczen[iloscOperacji];
  105.        
  106.         dodaj(tablicaRozpoczec, tablicaZakonczen, iloscOperacji);      
  107.            
  108.         sortuj(tablicaRozpoczec, tablicaZakonczen, iloscOperacji, 0);
  109.        
  110.         printf("wyklad  %d\n\n",sprawdzanie(tablicaRozpoczec, tablicaZakonczen, iloscOperacji));
  111.        
  112. //      printf("\n");
  113. //      int i=0;
  114. //      while(i < iloscOperacji)
  115. //      {
  116. //          printf("%d\t%d\n", tablicaRozpoczec[i], tablicaZakonczen[i]);
  117. //          i++;
  118. //      }          
  119.     }
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement