time limit per test

1 second

memory limit per test

64 megabytes

input

standard input

output

standard output

This is the first day for you at your new job and your boss asks you to copy some files from one computer to other computers in an informatics laboratory. He wants you to finish this task as fast as possible. You can copy the files from one computer to another using only one Ethernet cable. Bear in mind that any File-copying process takes one hour, and you can do more than one copying process at a time as long as you have enough cables. But you can connect any computer to one computer only at the same time. At the beginning, the files are on one computer (other than the computers you want to copy them to) and you want to copy files to all computers using a limited number of cables.

Input

First line of the input file contains an integer T (1  ≤  T  ≤  100) which denotes number of test cases. Each line in the next T lines represents one test case and contains two integers N, M.

N is the number of computers you want to copy files to them (1  ≤  N  ≤  1,000,000,000). While M is the number of cables you can use in the copying process (1  ≤  M  ≤  1,000,000,000).

Output

For each test case, print one line contains one integer referring to the minimum hours you need to finish copying process to all computers.

Examples
Input
3
10 10
7 2
5 3
Output
4
4
3
Note

In the first test case there are 10 computer and 10 cables. The answer is 4 because in the first hour you can copy files only to 1 computer, while in the second hour you can copy files to 2 computers. In the third hour you can copy files to 4 computers and you need the fourth hour to copy files to the remaining 3 computers.

题意就是复印文件,电缆有限,然后就是在电缆数允许的情况下1台电脑复印之后就有2台电脑可以继续进行复印,然后就是4台。。。达到电缆数所允许的最大值的时候剩下的就是按电缆数进行复印。

ヾ(。`Д´。),写这个题的时候智商不在家,wa了好几次。

代码:

 1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4 int t,n,m,i,cnt,ans;
5 scanf("%d",&t);
6 while(t--){
7 scanf("%d%d",&n,&m);
8 cnt=1;
9 for(i=0;n>0;i++){
10 if(cnt>m)n-=m;
11 else{
12 n-=cnt;
13 cnt*=2;
14 }
15 }
16 printf("%d\n",i);
17 }
18 return 0;
19 }

最新文章

  1. 让.NET 4.0支持TLS1.2协议
  2. 【leetcode】Regular Expression Matching (hard) ★
  3. jq 全选和反选以及判断那条被选中
  4. 主页面获取iframe 的子页面方法。
  5. C#窗体计算器
  6. SAS、R以及SPSS的比较__统计语言大战
  7. wpa_cli和wpa_supplicant使用,配置无线AP名和密码,静态ip地址
  8. 【Windows 8 Store App】学习:目录
  9. lua协程并发下载简单测试
  10. .net中的4种事务总结
  11. javascript DOM 笔记
  12. How To Automate Disconnection of Idle Sessions
  13. 解决用SHA256算法做私钥签名时,遇到“指定的算法无效”的问题
  14. 理解npm run
  15. HTTP请求与接收get/post方式
  16. OpenGL 3D旋转的木箱
  17. boost Asio网络编程简介
  18. Ribbon - WeightedResponseTimeRule原理
  19. saltstack的封装和内网使用
  20. 当强制关机时,出现Eclipse打不开的问题

热门文章

  1. 新工具填补Docker管理空白
  2. 【转】Android 添加系统服务
  3. The Django Book
  4. Python 爬取网页中JavaScript动态添加的内容(一)
  5. Restful API实战
  6. Oracle 遇到的问题:dos命令下imp导入数据时出错
  7. Codeforces Round #328(Div2)
  8. ALPHA(10)
  9. Asp.net WebApi添加帮助文档
  10. HTML5的JavaScript选择器介绍