제출 #678062

#제출 시각아이디문제언어결과실행 시간메모리
678062Cross_RatioJakarta Skyscrapers (APIO15_skyscraper)C++14
57 / 100
1088 ms3460 KiB
#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
int B[30005];
int C[30005];
int dis[30005];
bool vis[30005];
vector<int> V[30005];
typedef pair<int,int> P;
signed main() {
    //cin.sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int N, M;
    cin >> N >> M;
    int i, j;
    for(i=0;i<M;i++) cin >> B[i] >> C[i];
    for(i=0;i<N;i++) dis[i] = INF;
    for(i=0;i<M;i++) V[B[i]].push_back(i);
    dis[B[0]] = 0;
    priority_queue<P,vector<P>,greater<P>> PQ;
    PQ.push(P(0,B[0]));
    while(!PQ.empty()) {
        P k2 = PQ.top();
        PQ.pop();
        int id = k2.second;
        if(vis[id]) continue;
        vis[id] = true;
        for(int k : V[id]) {
            int st = B[k] % C[k];
            assert(B[k]==id);
            for(i=st;i<N;i+=C[k]) {
                int d = abs(i - B[k]) / C[k];
                if(dis[i] > dis[id] + d) {
                    dis[i] = dis[id] + d;
                    PQ.push(P(dis[i], i));
                }
            }
        }
    }
    cout << (dis[B[1]]==INF?-1:dis[B[1]]);
}

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:16:12: warning: unused variable 'j' [-Wunused-variable]
   16 |     int i, j;
      |            ^
#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...