yukicoder No.604 誕生日のお小遣い
- 二分探索やるんですよ。
- 予め、何年か指定したらいくら貰えてるか計算しやすいし。(check関数のこと)
- 算数が苦手な人でもこっちならいけるんじゃない?(僕のことです)
- あとはlong long だとオーバフローします。(unsignedつけようね)僕はミスしました。
#include<bits/stdc++.h> #define ll unsigned long long int using namespace std; ll a,b,c; inline bool check(ll m){ ll sum=m/a*b+m-m/a; if(sum>=c)return 1; else return 0; } int main(){ cin>>a>>b>>c; ll ng=0,ok=c; while(ok-ng>1){ ll mid=(ok+ng)/2; cerr<<mid<<endl; if(check(mid)){ ok=mid; }else{ ng=mid; } } cout<<ok<<endl; return 0; }