學姐出的水題
阿新 • • 發佈:2018-12-08
題目描述
王欣欣覺得自己太胖了,決定去跑步鍛鍊身體,但是他不喜歡彎道,所以他找了一段筆直的路來回跑,他的目標是跑k趟(來算一趟,回算一趟),這段路的長度為a米,王欣欣的初始體力值為b,他每跑1米需要消耗1體力,這段路中點即a/2處有個休息站,他可以在這休息到體力值恢復。王欣欣想要知道他最少休息多少次能完成他跑k趟的目標
輸入
第一行輸入一個T表示有T(T<=1000)組測試資料,每組包括3個數a(a是偶數 ),b,k,分別表示這段路起點到終點的長度,初始體力值和跑的目標趟數( 0 < a ≤ 10^6, 1 ≤ b ≤ 10^9, 2 ≤ k ≤ 10^4)
輸出
輸出能完成目標的最少休息次數,如果不存在則輸出-1
樣例輸入
2
2 9 7
8 7 2
樣例輸出
1
-1
分析:
本題我們可以分情況考慮,當k為1的時候和當k不為1的時候。然後需要注意的就是,當k
不為1的時候。b的值一定不能下雨a。否則就是輸出-1。
#include"stdio.h" int main() { long long t,a,b,k,b1,x,y,z; long long i,j,l,count; x=0; y=-1; z=1; while(~scanf("%lld",&t)) { while(t--) { count=0; scanf("%lld%lld%lld",&a,&b,&k); b1=b; if(k==1) { if(b>=a) {printf("%lld\n",x); continue; } else if(b>=a/2) { printf("%lld\n",z); continue; } else { printf("%lld\n",y); continue; } } if(b<a) { printf("%lld\n",y); continue; } for(i=1;i<k;i++) { b=b-a/2; if(b<a) { count++; b=b1; } b=b-a/2; } if(b>=a) { printf("%lld\n",count); continue; } else { count++; printf("%lld\n",count); continue; } } } }