给你n和m,你要按n次按钮,接下来m行,每行a和b,代表上a层,下b层,但不能钻到地下去。
假设上x层,则下(n-x)层,所以有a*x-b*(n-x)>0,==>(a+b)*x-b*n>0,==>x=(b*n+a+b)/(a+b);
//
// main.cpp
// 160929
//
// Created by 刘哲 on 17/4/6.
// Copyright © 2016年 my_code. All rights reserved.
//
//#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <list>
#include <bitset>
#include <stack>
#define lowbit(x) (x&-x)
using namespace std;
int main()
{
freopen("business.in","r",stdin);
freopen("business.out","w",stdout);
long long n,m;
cin>>n>>m;
long long ans = 0x3f3f3f3f3f;
while(m--)
{
long long a,b;
cin>>a>>b;
//int t = ceil(b*n/(a+b));
int t = (b*n+a+b)/(a+b);
//ans = min(ans,(long long)t*((long long)a+(long long)b)-(long long)b*n);
ans = min(ans,t*(a+b)-b*n);
}
cout<<ans<<endl;
return 0;
}