#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define hedef 50000000
int main() {
    int i,j,k;
    j=0;
    int partigenela[16];
    int partigenelb[16]; 
    int partigenelc[16];
    short int esit[5];
    short int esitpartisayi;
    char sirab[16];
    char siraa[16];
     char tmp;
  
    int ra;
    bool oyver;
    for(i=0;i<16;i++) {
                      partigenela[i]=0;
                      partigenelb[i]=0;
                      partigenelc[i]=0;
}
    srand(time(NULL));
   // int hedef=100000;
    for(i=0;i<hedef;i++) {
          oyver=false;   
           for(k=0;k<16;k++) partigenelb[k]=0;                  
          
           for(j=0;j<5;j++) { 
           ra=rand()%20;
              
           if(ra<8) { 
                    
          if(ra/2==0 && partigenelb[2]<=0) partigenelb[0]++;
            else if(ra/2==0) partigenelb[2]++;
           if(ra/2==1 && partigenelb[3]<=0) partigenelb[1]++;
            else  if(ra/2==1) partigenelb[3]++;  
           if(ra/2==2 && partigenelb[0]<=0) partigenelb[2]++;
            else  if(ra/2==2)partigenelb[0]++; 
           if(ra/2==3 && partigenelb[0]<=1) partigenelb[3]++;
            else  if(ra/2==3) partigenelb[1]++;
           
            
            }
              else    partigenelb[ra-4]++; 
              }    
              
          //    for(j=0;j<16;j++) printf("%c %d\n",'A'+j,partigenelb[j]);
              
                 for(k=0;k<16 && !oyver;k++) {
                     if(partigenelb[k]==5) {
                                 partigenela[k]+=5;          
                                 partigenelc[k]+=3;
                    //             printf("Oy:%c\n\n\n\n\n",'A'+k);
                  //               getch();
                                 oyver=true;          
                                           } 
                                           }      
                    for(k=0;k<16 && !oyver;k++) {
                     if(partigenelb[k]==4) {
                                 partigenela[k]+=4;          
                                 partigenelc[k]+=1;
                                 oyver=true;  
                        //         printf("Oy:%c\n\n\n\n\n",'A'+k);
                          //       getch();        
                                           }                           
                                           }
                 for(k=0;k<16 && !oyver;k++) {
                     if(partigenelb[k]==3) {
                                 partigenela[k]+=3;          
                                 partigenelc[k]+=1;
                                 oyver=true;    
                           //      printf("Oy:%c\n\n\n\n\n",'A'+k);
                             //    getch();      
                                           }         
                                           }
                                  esitpartisayi=0;
                     for(k=0;k<16 && !oyver;k++) {
                     if(partigenelb[k]==2) {
                                 esit[esitpartisayi]=k;          
                                 esitpartisayi++;  
                              //   printf("Oy:%c\n\n\n\n\n",'A'+k);
                               //  getch();     
                                           }         
                                           }
                         if(esitpartisayi!=0 && !oyver) {
                                 ra=rand()%esitpartisayi;
                                 partigenela[esit[ra]]+=2;          
                                 partigenelc[esit[ra]]+=1;
                                 oyver=true;   
                                                
                                                
                                                }        
                     for(k=0;k<16 && !oyver;k++) {
                     if(partigenelb[k]==1) {
                                esit[esitpartisayi]=k;          
                                 esitpartisayi++;   
                               //  printf("Oy:%c\n\n\n\n\n",'A'+k);
                               //  getch();      
                                           }         
                                           }
                                if(esitpartisayi!=0 && !oyver) {
                                 ra=rand()%esitpartisayi;
                                 partigenela[esit[ra]]+=2;          
                                 partigenelc[esit[ra]]+=1;
                                 oyver=true;   
                                                
                                                
                                                }        
                                 
                     
                          printf("%%%d\n",i*100/hedef);   
                     
                   
                
                            
                            
                            } 
                            
    for(i=0;i<16;i++) printf("Parti %c: %d   %d\n",'A'+i,partigenela[i],partigenelc[i]);
    
    for(i=0;i<16;i++) {
              siraa[i]=i;        
              sirab[i]=i;        
                      }
    
    for(i=0;i<16;i++) {
           for(k=0;k<15;k++){
                             
              if(partigenelc[siraa[k]] < partigenelc[siraa[k+1]]  )        {       
                       
                           tmp = siraa[k+1];    
                           siraa[k+1]= siraa[k];
                           siraa[k]=tmp;
                             } 
                 if(partigenelb[sirab[k]] < partigenelb[sirab[k+1]]  )        {       
                       
                           tmp = sirab[k+1];    
                           sirab[k+1]= sirab[k];
                           sirab[k]=tmp;
                             }               
                             
                             
                             }       
                      }
   printf("\nKlasik sisteme gore siralama        :"); for(i=0;i<16;i++) printf("%c ",siraa[i]+'A');
   printf("\nAklima gelen sisteme gore siralama  :"); for(i=0;i<16;i++) printf("%c ",siraa[i]+'A');
    
    
 getch();   
    
}
