Jan_Rubin

Autobusove nadrazi - Max prazdnych autobusu

Jan 19th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. /* Vypsat nejvic uplne prazdnych autobusu z jakeho nastupiste. */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(int argc, char** argv) {
  6.  
  7.     int pole[2600][2]={{0}};
  8.     char plus, patro;
  9.     int nast=0, kolik=0;
  10.     int max=0, x=0, pridat=0;
  11.    
  12.    
  13.     while(scanf(" %c%c%d:%d",&plus,&patro,&nast,&kolik)==4 && (plus=='+' || plus=='-') && patro>='A' || patro=='-'
  14.             && nast>=0 && nast<=99 && kolik>0)
  15.     {
  16.         if(plus=='+') pole[(100*(patro -65)) + nast][0]+=kolik;
  17.         else
  18.         {
  19.             if(pole[(100*(patro -65)) + nast][0]==0)
  20.             {
  21.                 pole[(100*(patro -65)) + nast][1]++;
  22.                 if(pole[(100*(patro -65)) + nast][1]>max)max=pole[(100*(patro -65)) + nast][1];
  23.             }
  24.             else if(pole[(100*(patro -65)) + nast][0] >= kolik)
  25.             {
  26.                 pole[(100*(patro -65)) + nast][0]-=kolik;
  27.             }
  28.             else
  29.             {
  30.                 pole[(100*(patro -65)) + nast][0]=0;
  31.             }
  32.         }
  33.     }
  34.     if(!feof(stdin))
  35.     {
  36.         printf("Nespravny vstup.\n");
  37.         return 0;
  38.     }
  39.     printf("Nejvice odjelo %d prazdnych autobusu z nastupist: ",max);
  40.     if(max==0) printf("-");
  41.     else
  42.     {
  43.         for(x=0; x<2600; x++)
  44.         {
  45.             if(max==pole[x][1])
  46.             {
  47.                 if(pridat) printf(", ");
  48.                 printf("%c%d",(x/100)+65,x%100);
  49.                 pridat=1;
  50.             }
  51.         }
  52.     }
  53.     printf("\n");
  54.    
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment