졸릴 때 짜서 변수 선언도 엉망이고 마음에 안 든다.
구간 내 가장 작은 값을 찾아내는 문제라서 와일문 벗어난 start
를 출력해주는데 이걸 계속 mid
출력이라고 생각하고 있어서 한번 틀렸다. 사실 지금도 뭐가 다른건지 잘 모르겠는데 잠깨고 봐야지 안돼서 이것저것 수정해보다가 얻어걸렸다. 방ㄴ성함
#include <iostream>
using namespace std;
long long x, y, z, mid, nz, ans;
int main()
{
long long start=0;
long long end=10e9;
ans=-1;
cin>>x>>y;
z=(y*100)/x;
if(z>=99)
{
cout<<ans<<endl;
return 0;
}
while(start<=end)
{
mid=(start+end)/2;
nz=((y+mid)*100)/(x+mid);
if(nz>z)
end=mid-1;
else
start=mid+1;
}
cout<<start<<endl;
}