| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 678062 | Cross_Ratio | Jakarta Skyscrapers (APIO15_skyscraper) | C++14 | 1088 ms | 3460 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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]]);
}
Compilation message (stderr)
| # | 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... | ||||
