담 ¶
대 나다만... 가 보 법 빠르.. 법 란 명 못다느 그러..ㅋㅋ
빡 문구만..^^ 다내믹라나 뭐라나...ㅜㅜ; 뭐 론 면 뭐가 빠르..ㅋㅋ 머리 ..ㅋㅋ
대 복..ㅡㅡ;
늘 루 ...ㅡㅡ;
감 ¶
무 게 나는데 못 가~??
단 f s개 고가 면 s-1개는 f 반, 또 그기 반 렇게 떨뜨려보면 되고
막 개는 그렇게 공 낮데 부 나나 떨뜨려보면 된다고 각는데.
그래 나 floor/2^(s-1)+s-1~
그리고 나 floor/2^s 1보다 때는 s 떨뜨려 볼 가 기때문
s를 감 가며 floor/2^s가 1보다 나 같때 s+1 리면 된다.
s(고)가 다고 경를 각보면...
7때, 7라고 면 4 6 7 면 3 는데.
8때, 8라고 면 4 6 7 8 4 다.
2 부 나가 많다.
8 2^3고 1 더 4 가 된다.
9때 9라고면 그때 4가 된다 (16 될때 까)
, floor/2^s가 1보다 는 s+1 다.
단 f s개 고가 면 s-1개는 f 반, 또 그기 반 렇게 떨뜨려보면 되고
막 개는 그렇게 공 낮데 부 나나 떨뜨려보면 된다고 각는데.
그래 나 floor/2^(s-1)+s-1~
s를 감 가며 floor/2^s가 1보다 나 같때 s+1 리면 된다.
7때, 7라고 면 4 6 7 면 3 는데.
8때, 8라고 면 4 6 7 8 4 다.
2 부 나가 많다.
8 2^3고 1 더 4 가 된다.
9때 9라고면 그때 4가 된다 (16 될때 까)
¶
~cpp #include <iostream> #include <cmath> using namespace std; int testcase, nFloor, nSaver; int calculate(int f, int s) { if(f/pow(2,s)<1) { while(s--) { if(f/pow(2,s)>=1) return s+1; } } return f/pow(2,s-1)+s-1; // f/pow(2,s-1) =>s-1 나뉘고 난 그 부 } int main() { cin>>testcase; while(testcase--) { cin>>nFloor>>nSaver; cout << calculate(nFloor, nSaver) <<endl; } return 0; }