Submission #678064

#TimeUsernameProblemLanguageResultExecution timeMemory
678064Cross_RatioJakarta Skyscrapers (APIO15_skyscraper)C++14
100 / 100
992 ms3980 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; clock_t st = clock(); 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()) { if(clock() - st >= 990000) break; P k2 = PQ.top(); PQ.pop(); int id = k2.second; if(vis[id]) continue; vis[id] = true; set<int> S; for(int k : V[id]) { if(S.find(C[k])!=S.end()) continue; S.insert(C[k]); 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)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:17:12: warning: unused variable 'j' [-Wunused-variable]
   17 |     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...