제출 #108055

#제출 시각아이디문제언어결과실행 시간메모리
108055oolimryJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
462 ms263168 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<long long, int> 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[doges[0].first] = 0; priority_queue<ii, vector<ii>, greater<ii> > pq; pq.push(ii(0,doges[0].first)); 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[doges[1].first] > 10234567891ll) cout << -1; else cout << dis[doges[1].first]; 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 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...