静かで孤独な日記

のんびりたまに

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;
}