#include<bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
// using namespace __gnu_pbds;
typedef long long ll;
#define int long long
#define vi vector<int>
#define vvi vector<vi>
#define vll vector<ll>
#define vvll vector<vll>
#define pi pair<int,int>
#define pll pair<ll,ll>
#define ff first
#define ss second
#define vpi vector<pair<int,int>>
#define rep(ii,st, n) for(int ii=st; ii<n; ii++)
#define gp " "
//bit_manupulation
#define checkbit(x,n) (x&(1LL<<n))
#define setbit(x,n) (x=(x|(1LL<<n)))
#define resetbit(x,n) (x=(x&(~(1LL<<n))))
#define pow2(i) (1LL<<i)
#define bitcnt(x) ((sizeof(x) <= sizeof(int)) ? (32 - __builtin_clz(x)) : (64 - __builtin_clzll(x)))
#define DEBG
#define debug(n)
#define debugc(a)
#define debugcc(a)
#ifdef DEBG
#define debug(n) cout<<__LINE__<<gp<<#n<<gp<<n<<endl;
#define debugc(a) cout<<__LINE__<<gp<<#a<<gp<<'['<<gp;for(auto el:a){cout<<el<<gp;}cout<<']'<<endl;
#define debugcc(a) cout<<__LINE__<<gp<<#a<<gp<<'['<<gp;for(auto el:a){cout<<'{'<<gp<<el.ff<<','<<el.ss<<gp<<'}'<<gp;}cout<<']'<<endl;
#endif
#define fastcin() ios_base::sync_with_stdio(false); cin.tie(NULL);
#define endl '\n'
#define All(a) a.begin(),a.end()
template<typename T> void get_vector(T&a){for(auto&e:a)cin>>e;}
template<typename T> void put_vector(T a){for(auto e:a)cout<<e<<" ";cout<<endl;}
const ll INF = 2e18;
const ll inf = INT_MAX;
const ll M = 1e9 + 7;
const ll N = 2e5 + 7;
const ll modinvof2 = 500000004;
//==============================CODE STARTS HERE==============================//
void preprocessing(){
}
void solve(int testcases){
int n,m;
cin>>n>>m;
vi b(m),p(m);
for(int i = 0; i<m; i++){
cin>>b[i]>>p[i];
}
int ans = 1e16;
int mx = 0;
bool fl = false;
for(int i = b[0]; i<n; i+=p[0]){
if(i == b[1]){
ans = min(ans,mx);
}
if(i == b[2]){
int smx = 0;
for(int j = b[2]; j<n; j+=p[2]){
if(j == b[1]){
ans = min(ans,mx+smx);
break;
}
smx++;
}
smx = 0;
for(int j = b[2]; j>=0; j-=p[2]){
if(j == b[1]){
ans = min(ans,mx+smx);
break;
}
smx++;
}
}
mx++;
}
mx = 0;
for(int i = b[0]; i>=0; i-=p[0]){
if(i == b[1]){
ans = min(ans,mx);
}
if(i == b[2]){
int smx = 0;
for(int j = b[2]; j<n; j+=p[2]){
if(j == b[1]){
ans = min(ans,mx+smx);
break;
}
smx++;
}
smx = 0;
for(int j = b[2]; j>=0; j-=p[2]){
if(j == b[1]){
ans = min(ans,mx+smx);
break;
}
smx++;
}
}
mx++;
}
if(ans >= 1e12){
cout<<-1<<endl;
return;
}
cout<<ans<<endl;
}
int32_t main(){
fastcin();
int t=1;
// cin>>t;
preprocessing();
rep(i,1,t+1){
solve(i);
}
return 0;
}
Compilation message (stderr)
skyscraper.cpp:37: warning: "debug" redefined
37 | #define debug(n) cout<<__LINE__<<gp<<#n<<gp<<n<<endl;
|
skyscraper.cpp:33: note: this is the location of the previous definition
33 | #define debug(n)
|
skyscraper.cpp:38: warning: "debugc" redefined
38 | #define debugc(a) cout<<__LINE__<<gp<<#a<<gp<<'['<<gp;for(auto el:a){cout<<el<<gp;}cout<<']'<<endl;
|
skyscraper.cpp:34: note: this is the location of the previous definition
34 | #define debugc(a)
|
skyscraper.cpp:39: warning: "debugcc" redefined
39 | #define debugcc(a) cout<<__LINE__<<gp<<#a<<gp<<'['<<gp;for(auto el:a){cout<<'{'<<gp<<el.ff<<','<<el.ss<<gp<<'}'<<gp;}cout<<']'<<endl;
|
skyscraper.cpp:35: note: this is the location of the previous definition
35 | #define debugcc(a)
|| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |