#include <bits/stdc++.h>
#define int long long
int b[30010];
int p[30010];
int adj[2015][2015];
signed main() {
int n,m;
std::cin >> n >> m;
int s,e;
for(int i=0;i<m;i++){
std::cin >> b[i] >> p[i];
if(i==0)s=b[i];
else if(i==1)e=b[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
adj[i][j]=1e9;
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(std::abs(j-b[i])%p[i]==0){
adj[b[i]][j]=std::min(adj[b[i]][j],std::abs(j-b[i])/p[i]);
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
adj[i][j]=std::min(adj[i][j],adj[i][k]+adj[k][j]);
}
}
}
// for(int j=0;j<n;j++){
// if(std::abs(j-b[1])%p[1]==0){
// adj[s][e]=std::min(adj[s][e],adj[s][j]+std::abs(j-b[1])/p[1]);
// }
// }
// for(int i=0;i<n;i++){
// for(int j=0;j<n;j++){
// std::cout << adj[i][j] << ' ';
// }std::cout << '\n';
// }
if(adj[s][e]==1e9)adj[s][e]=-1;
std::cout << adj[s][e];
}
//g++ C:\Users\Jump\Desktop\C++\graph\edgeSort.cpp -o C:\Users\Jump\Desktop\C++\com\edgeSort.exe
| # | 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... |