Business Center
Time Limit: 1000ms
Memory Limit: 65536KB
This problem will be judged on
PKU. Original ID: 386364-bit integer IO format: %lld Java class name: Main
International Cyber Police Corporation (ICPC) had built a new mega-tall business center to host its headquarters and to lease some space for extra profit. It has so many floors, that it is impractical to have a separate button in each of its m elevator cars for each individual floor. Instead, each elevator car has just two buttons. One button in i-th elevator car makes it move up ui floors, the other makes it move down di floors. The business center is so high, that we can ignore its height for this problem (you will never reach the top floor), but you cannot go below the ground floor. All floors are numbered by integer numbers starting from zero, zero being the ground floor.
You start on the ground floor of the business center. You have to choose one elevator car out of m to ride on. You cannot switch elevators cars after that. What is the lowest floor above the ground floor you can get to after you press elevator car buttons exactly n times?
You start on the ground floor of the business center. You have to choose one elevator car out of m to ride on. You cannot switch elevators cars after that. What is the lowest floor above the ground floor you can get to after you press elevator car buttons exactly n times?
Input
The first line of the input file contains two integer numbers n and m (1 <= n <= 1 000 000, 1 <= m <= 2 000) - the number of button presses and the number of elevator cars to choose from. The following m lines describe elevator cars. Each line contains two integer numbers ui and di (1 <= ui, di <= 1 000).
Output
Write to the output file a single positive integer number - the number of the lowest floor above ground floor that can be reached by one of m elevators after pressing its buttons exactly n times.
Sample Input
10 3 15 12 15 4 7 12
Sample Output
13
Source
解题:直接搞呗。。貌似要求必须至少上一次
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 LL n,m,u,d,ret; 5 void check() { 6 LL tmp = (n*d+u+d)/(u+d); 7 ret = min(ret,(u+d)*tmp - n*d); 8 } 9 int main() { 10 ios::sync_with_stdio(false); 11 cin>>n>>m; 12 ret = INT_MAX; 13 while(m--) { 14 cin>>u>>d; 15 check(); 16 } 17 cout<<ret<<endl; 18 return 0; 19 }