SuitNdtie

Silly Bakery PROG 1012 (BUGGED)

Mar 9th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int cake[5];
  4. int storecake[5];
  5. /*
  6. int cal(int start,int x)
  7. {
  8.     int add = 0;
  9.     int tx = x;
  10.     for(int i=start;i>=1&&tx!=0;i--){
  11.         if(storecake[i] >= tx){
  12.             tx = 0;
  13.             storecake[i]-=tx;
  14.         }
  15.     }
  16.     return add;
  17. }*/
  18. int main()
  19. {
  20.     storecake[0] = 1e9;
  21.     int n;
  22.     scanf("%d",&n);
  23.     for(int i=0;i<n;i++){
  24.         for(int j=0;j<5;j++){
  25.             int x;
  26.             scanf("%d",&x);
  27.             cake[j]+=x;
  28.         }
  29.     }
  30.     int ans = 0;
  31.     //a  full
  32.     ans += cake[0];
  33.    
  34.     //b  3/4
  35.     ans += cake[1];
  36.     storecake[3] += cake[1];
  37.    
  38.     //c  1/2
  39.     ans += (cake[2]+1)/2;
  40.     storecake[2] += cake[2]%2;
  41. //  ans += cal(3,cake[3]);
  42.    
  43.     //d  1/4
  44.     if(storecake[3]>=cake[3]){ //en
  45.         storecake[3] -= cake[3];
  46.     }
  47.     else if(storecake[3] < cake[3]){ //nen
  48.         cake[3] -= storecake[3];
  49.         if(storecake[2]*2 >= cake[3]){ //en (go to 1/2)
  50.             storecake[2] -= (cake[3]+1)/2;
  51.             storecake[3] += cake[3]%2;
  52.             cake[3] = 0;
  53.         }
  54.         else if(storecake[2]*2 < cake[3]){ //nen
  55.             cake[3] -= storecake[2]*2;
  56.             if(storecake[1]*3 >= cake[3]){ // en (go to 3/4)
  57.                 storecake[1] -= (cake[3]+2)/3;
  58.                 storecake[cake[3]%3] += 1;
  59.                 cake[3] = 0;
  60.             }else if(storecake[1]*3 < cake[3]){ //nen
  61.                 cake[3] -= storecake[3]*3;
  62.                 //go to 1/1
  63.                 ans += (cake[3]+3)/4;
  64.                
  65.                 storecake[cake[3]%4] += 1;
  66.                 /*
  67.                 if(cake[3]%4 == 3){
  68.                     storecake[3] += 1;
  69.                 }else if(cake[3]%4 == 2){
  70.                     storecake[2] += 1;
  71.                 }else if(cake[3]%4 == 1){
  72.                     storecake[1] += 1;
  73.                 }*/
  74.                 cake[3] = 0;
  75.             }
  76.         }
  77.     }
  78.    
  79.     //e  1/8
  80.     if(storecake[4]>=cake[4]){ //en
  81.         storecake[4] -= cake[4];
  82.     }
  83.     else if(storecake[4] < cake[4]){ //nen
  84.         cake[4] -= storecake[4];
  85.         if(storecake[3]*2 >= cake[4]){ //en (go to 1/4)
  86.             storecake[3] -= (cake[4]+1)/2;
  87.             storecake[4] += cake[4]%2;
  88.             cake[4] = 0;
  89.         }
  90.         else if(storecake[3]*2 < cake[4]){ //nen
  91.             cake[4] -= storecake[3]*2;
  92.             if(storecake[2]*4 >= cake[4]){ // en (go to 1/2)
  93.                 storecake[2] -= (cake[4]+3)/4;
  94.                 if(cake[4]%4 == 1){
  95.                     storecake[3] += 1;
  96.                     storecake[4] += 1;
  97.                 }else if(cake[4]%4 == 2){
  98.                     storecake[3] += 1;
  99.                 }else if(cake[4]%4 == 3){
  100.                     storecake[4] += 1;
  101.                 }
  102.                 cake[4] = 0;
  103.             }else if(storecake[2]*4 < cake[4]){ //nen
  104.                 cake[4] -= storecake[4]*4;
  105.                 //go to 1/1
  106.                 ans += (cake[4]+7)/8;
  107.                
  108.                 if(cake[4]%8 == 1){
  109.                     storecake[1] += 1;
  110.                     storecake[4] += 1;
  111.                 }else if(cake[4]%8 == 2){
  112.                     storecake[1] += 1;
  113.                 }else if(cake[4]%8 == 3){
  114.                     storecake[4] += 1;
  115.                     storecake[2] += 1;
  116.                 }else if(cake[4]%8 == 4){
  117.                     storecake[2] += 1;
  118.                 }else if(cake[4]%8 == 5){
  119.                     storecake[4] += 1;
  120.                     storecake[3] += 1;
  121.                 }else if(cake[4]%8 == 6){
  122.                     storecake[3] += 1;
  123.                 }else if(cake[4]%8 == 7){
  124.                     storecake[4] += 1;
  125.                 }
  126.                
  127.                 //storecake[cake[3]%4] += 1;
  128.                 /*
  129.                 if(cake[3]%4 == 3){
  130.                     storecake[3] += 1;
  131.                 }else if(cake[3]%4 == 2){
  132.                     storecake[2] += 1;
  133.                 }else if(cake[3]%4 == 1){
  134.                     storecake[1] += 1;
  135.                 }*/
  136.                 cake[4] = 0;
  137.             }
  138.         }
  139.     }
  140.     printf("%d",ans);
  141. }
Advertisement
Add Comment
Please, Sign In to add comment