圣誕節期間,魔法球的需求量激增,敏敏學姐想趁此機會撈一把。現在已經是 9102年了,我們可以輕松的用魔法晶體來合成魔法球了。
敏敏學姐想要獲得一些黃色,綠色和藍色的魔法球。已知合成一個黃色魔法球需要兩個黃色晶體,合成一個綠色魔法球需要一個黃色晶體和一個藍色晶體,合成一個藍色魔法球需要三個藍色晶體
現在敏敏學姐已經有了 A 個黃色晶體和 B 個藍色晶體。敏敏學姐想要得到x個黃色魔法球,y個綠色魔法球和z個藍色魔法球。請幫敏敏學姐計算出最少還需要的晶體數量。第一行有2個數字 A 和 B (0?≤?A,?B?≤?10^9),分別代表已有的黃色晶體個數,和藍色晶體個數。
第二行有3個數字 x, y 和 z (0?≤?x,?y,?z?≤?10^9) — 代表最終要得到的黃綠藍魔法球個數。
Input
4 3
2 1 1
Output
2
Input
3 9
1 1 3
Output
1
Input
12345678 87654321
43043751 1000000000 53798715
Output
2147483648
我的代碼,錯誤了
#include<stdio.h>
int main()
{ unsigned long long int a,b,x,y,z,n,m,blue=0,yellow=0,t;
scanf("%lld%lld",&a,&b);
scanf("%lld%lld%lld",&x,&y,&z);
n=b/3;
t=b%3;
if(n<=z)
blue=3*(z-n)+y-t;
if(n>z&&(n-z)<=y)
blue=y-(n-z)-t;
if(n>z&&(n-z)>y)
blue=0;
if(a<=y)
yellow=y-a+2*x;
if(a>y&&(a-y)%2==0)
yellow=(x-(a-y)/2)*2;
if(a>y&&(a-y)%2!=0)
yellow=(x-(a-y)/2)*2-1;
m=blue+yellow;
printf("%lld",m);
return 0;
}
uj5u.com熱心網友回復:
你的程式定義了一堆整數,n=b/3; 你確定這句不會有問題?
你的怎么這么麻煩 別把簡單問題想復雜了
供參考
int main(){
int a,b;
while (scanf("%d %d",&a,&b)!=EOF)
{
unsigned int x,y,z;
scanf("%u %u %du",&x,&y,&z);
printf("%u\n",2*(x+y)+3*z-a-b);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/200427.html
標籤:C語言
上一篇:c++工程
