Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Line 1: Two space-separated integers: N and K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Sample Input
5 17
Sample Output
4
Hint
The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.
#include"iostream" #include"queue" using namespace std; #define MAX 100000 int dis[MAX + 1]; bool check[MAX + 1]; int catch_Cow(int n, int k) { int c; queue<int> q; q.push(n); dis[n] = 0; check[n] = 1; while(!q.empty()) { c = q.front(); q.pop(); if(c - 1 >= 0 && c - 1 < MAX + 1 && !check[c - 1]) { check[c - 1] = 1; dis[c - 1] = dis[c] + 1; q.push(c - 1); } if(c + 1 >= 0 && c + 1 < MAX + 1 && !check[c + 1]) { check[c + 1] = 1; dis[c + 1] = dis[c] + 1; q.push(c + 1); } if(c * 2 >= 0 && c * 2 < MAX + 1 && !check[c * 2]) { check[c * 2] = 1; dis[c * 2] = dis[c] + 1; q.push(c * 2); } if(c == k) return dis[c]; } return 0; } int main() { int john_n, cow_k; while (cin>>john_n>>cow_k) { memset(check,0,sizeof(check)); memset(dis,0,sizeof(dis)); cout<<catch_Cow(john_n, cow_k)<<endl<<endl; } return 0; }
相关推荐
compile 'com.github.chrisbanes:PhotoView:1.2.6' } Sample Usage There is a sample provided which shows how to use the library in a more advanced way, but for completeness here is all that is required...
package com.hexiang.utils; import java.sql.*; import java.util.*; /** * * Title: 数据库工具类 * * * Description: 将大部分的数据库操作放入这个类中, 包括数据库连接的建立, 自动释放等. * * ...
Error handling with do-try-catch block Delve into Generics and Generic programming Implement several design patterns in a protocol-oriented way How to design applications by prioritizing the protocol ...
- **Assertions**: Using assertions to check the expected outcome of operations helps catch errors early in the development process. - **Isolation**: Tests should run in isolation from each other to ...
For that I developed a COM service that used MAPI. MAPI, i.e. Messaging Application Programming Interface, is the standard messaging architecture and a complete set of functions and object-oriented ...
With CodeRush, you will be able to instantly place selected code inside Try/Catch blocks, Regions and your own custom wrappers with ease. You can even reverse the logic of selected code and revisit ...
- **Exception Handler Syntax**: This section covers the syntax for handling exceptions, including the use of `try`, `catch`, and `finally` blocks. - **Handling Exceptions**: This topic discusses best ...
// this helped me catch a bug in ssicoll that would prevent // compilation, otherwise. // // 2003-MAR-14 - Thanks to Jakko Van Hunen for pointing out a copy-and-paste // bug in one of the ...
102TokyoTurboPack DOSCommand component let you execute a dos program (exe com or batch file) and catchthe ouput in order to put it in a memo or in a listbox ...You can also send inputs.The cool thing ...
this component let you execute a dos program (exe, com or batch file) and catch the ouput in order to put it in a memo or in a listbox, ... you can also send inputs. the cool thing of this component...
} catch (UnsupportedEncodingException e) { e.printStackTrace(); } str = str.replace("Evaluation Warning : The document was created with Spire.PDF for Java.", "") .replace("450万+...
// Something happened in setting up the request that triggered an Error console.log(error.message); } }); ``` 2. Promise 支持 Axios 基于 Promise,使得链式调用和错误处理更加优雅。上述示例展示了...
You can clone this repository, then run 'debug' build variant and 'second' build variant, after that you can see two applications running on your phone which named PLock-FirstProcess and PLock-...
// Something happened in setting up the request that triggered an Error console.log(error.message); } }); ``` #### 发送 POST 请求 POST 请求同样方便,可以传递数据: ```javascript axios.post('...
* static copy() method that other programs can use to copy files. **/ public class FileCopy { /** The main() method of the standalone program. Calls copy(). */ public static void main(String[] ...
// Calling a year will return the academic calendar starting with that year // (In this case, 2014-15) academic_calendar.getJSON(2014) // Yay got the data .then(function (data) {...}) // On noes,...
Prevent and Catch Errors with Poka-yoke Devices 191 Poka-yoke on the web 192 Prevention devices 193 Detection devices 195 Turn errors into opportunities 200 Feeling smart 202 Ditch Anything ...
// Now specify the queue that we wish to open, // and the open options... MQQueue remoteQ = qMgr.accessQueue(qName, openOptions); // Define a simple WebSphere MQ message, and write some text in ...
<c:out value="Some code that might throw an exception"/> </c:catch> ${exception.message}"/> ``` ##### 5. 条件判断标签 - `<c:if>` - `<c:choose>`,`<c:when>`,`<c:otherwise>` 这些标签用于根据不同的...