제출 #1310190

#제출 시각아이디문제언어결과실행 시간메모리
1310190AutoratchJakarta Skyscrapers (APIO15_skyscraper)C++20
10 / 100
3 ms1636 KiB
#include <bits/stdc++.h>
int b[30010];
int p[30010];
int adj[2005][2005];
int 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];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...