이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef pair<long long, long long> ii;
typedef vector<ii> vii;
int main()
{
//freopen("i.txt","r",stdin);
long long n, m;
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
ii doges[m];
for(int i = 0;i < m;i++){
cin >> doges[i].first >> doges[i].second;
}
//return 0;
set<int> power[n];
for(int i = 0;i < m;i++){
power[doges[i].first].insert(doges[i].second);
}
vii edges[n];
for(int i = 0;i < m;i++){
long long x = doges[i].first;
long long p = doges[i].second;
long long a = x + p;
long long w = 0;
while(a < n){
w++;
//cout << p << "\n";
edges[x].push_back(ii(w,a));
if(power[a].find(p) != power[a].end()) break;
a += p;
}
a = x - p;
w = 0;
while(a >= 0){
w++;
edges[x].push_back(ii(w,a));
if(power[a].find(p) != power[a].end()) break;
a -= p;
}
}
for(int i = 0;i < n;i++){
for(int j = 0;j < edges[i].size();j++){
ii v = edges[i][j];
//cout << v.second << " " << v.first << "|";
}
//cout << "\n";
}
long long dis[n];
fill(dis,dis+n,102345678901233ll);
dis[0] = 0;
priority_queue<ii, vector<ii>, greater<ii> > pq;
pq.push(ii(0,0));
while(!pq.empty()){
ii u = pq.top();
pq.pop();
for(int j = 0;j < edges[u.second].size();j++){
ii v = edges[u.second][j];
if(dis[v.second] > v.first + u.first){
dis[v.second] = v.first + u.first;
pq.push(ii(dis[v.second],v.second));
}
}
}
if(dis[1] > 10234567891ll) cout << -1;
else cout << dis[1];
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
skyscraper.cpp: In function 'int main()':
skyscraper.cpp:54:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < edges[i].size();j++){
~~^~~~~~~~~~~~~~~~~
skyscraper.cpp:55:16: warning: variable 'v' set but not used [-Wunused-but-set-variable]
ii v = edges[i][j];
^
skyscraper.cpp:71:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < edges[u.second].size();j++){
~~^~~~~~~~~~~~~~~~~~~~~~~~| # | 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... |