Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int cake[5];
- int storecake[5];
- /*
- int cal(int start,int x)
- {
- int add = 0;
- int tx = x;
- for(int i=start;i>=1&&tx!=0;i--){
- if(storecake[i] >= tx){
- tx = 0;
- storecake[i]-=tx;
- }
- }
- return add;
- }*/
- int main()
- {
- storecake[0] = 1e9;
- int n;
- scanf("%d",&n);
- for(int i=0;i<n;i++){
- for(int j=0;j<5;j++){
- int x;
- scanf("%d",&x);
- cake[j]+=x;
- }
- }
- int ans = 0;
- //a full
- ans += cake[0];
- //b 3/4
- ans += cake[1];
- storecake[3] += cake[1];
- //c 1/2
- ans += (cake[2]+1)/2;
- storecake[2] += cake[2]%2;
- // ans += cal(3,cake[3]);
- //d 1/4
- if(storecake[3]>=cake[3]){ //en
- storecake[3] -= cake[3];
- }
- else if(storecake[3] < cake[3]){ //nen
- cake[3] -= storecake[3];
- if(storecake[2]*2 >= cake[3]){ //en (go to 1/2)
- storecake[2] -= (cake[3]+1)/2;
- storecake[3] += cake[3]%2;
- cake[3] = 0;
- }
- else if(storecake[2]*2 < cake[3]){ //nen
- cake[3] -= storecake[2]*2;
- if(storecake[1]*3 >= cake[3]){ // en (go to 3/4)
- storecake[1] -= (cake[3]+2)/3;
- storecake[cake[3]%3] += 1;
- cake[3] = 0;
- }else if(storecake[1]*3 < cake[3]){ //nen
- cake[3] -= storecake[3]*3;
- //go to 1/1
- ans += (cake[3]+3)/4;
- storecake[cake[3]%4] += 1;
- /*
- if(cake[3]%4 == 3){
- storecake[3] += 1;
- }else if(cake[3]%4 == 2){
- storecake[2] += 1;
- }else if(cake[3]%4 == 1){
- storecake[1] += 1;
- }*/
- cake[3] = 0;
- }
- }
- }
- //e 1/8
- if(storecake[4]>=cake[4]){ //en
- storecake[4] -= cake[4];
- }
- else if(storecake[4] < cake[4]){ //nen
- cake[4] -= storecake[4];
- if(storecake[3]*2 >= cake[4]){ //en (go to 1/4)
- storecake[3] -= (cake[4]+1)/2;
- storecake[4] += cake[4]%2;
- cake[4] = 0;
- }
- else if(storecake[3]*2 < cake[4]){ //nen
- cake[4] -= storecake[3]*2;
- if(storecake[2]*4 >= cake[4]){ // en (go to 1/2)
- storecake[2] -= (cake[4]+3)/4;
- if(cake[4]%4 == 1){
- storecake[3] += 1;
- storecake[4] += 1;
- }else if(cake[4]%4 == 2){
- storecake[3] += 1;
- }else if(cake[4]%4 == 3){
- storecake[4] += 1;
- }
- cake[4] = 0;
- }else if(storecake[2]*4 < cake[4]){ //nen
- cake[4] -= storecake[4]*4;
- //go to 1/1
- ans += (cake[4]+7)/8;
- if(cake[4]%8 == 1){
- storecake[1] += 1;
- storecake[4] += 1;
- }else if(cake[4]%8 == 2){
- storecake[1] += 1;
- }else if(cake[4]%8 == 3){
- storecake[4] += 1;
- storecake[2] += 1;
- }else if(cake[4]%8 == 4){
- storecake[2] += 1;
- }else if(cake[4]%8 == 5){
- storecake[4] += 1;
- storecake[3] += 1;
- }else if(cake[4]%8 == 6){
- storecake[3] += 1;
- }else if(cake[4]%8 == 7){
- storecake[4] += 1;
- }
- //storecake[cake[3]%4] += 1;
- /*
- if(cake[3]%4 == 3){
- storecake[3] += 1;
- }else if(cake[3]%4 == 2){
- storecake[2] += 1;
- }else if(cake[3]%4 == 1){
- storecake[1] += 1;
- }*/
- cake[4] = 0;
- }
- }
- }
- printf("%d",ans);
- }
Advertisement
Add Comment
Please, Sign In to add comment