Submission #1195548

#TimeUsernameProblemLanguageResultExecution timeMemory
1195548cpdreamerJakarta Skyscrapers (APIO15_skyscraper)C++20
22 / 100
1104 ms321944 KiB
#include <vector> #include <bits/stdc++.h> using namespace std; #define pb push_back #define V vector using namespace std; typedef long long ll; #define all(v) v.begin(), v.end() #define P pair #define F first #define S second const ll MOD=(ll)1e9+7; void file() { freopen("input.txt.txt", "r", stdin); freopen("output.txt.txt", "w", stdout); } V<P<int,int>>adj[(int)4e6+1]; V<bool>processed((int)4e6+1,false); V<int>dis(4e6 + 1, 1e8); void bfs(int n,int x){ priority_queue<P<int,int>>q; dis[x] = 0; q.push({0,x}); while (!q.empty()) { int a = q.top().second; q.pop(); if (processed[a]) continue; processed[a] = true; for (auto u : adj[a]) { int b = u.first, w = u.second; if (dis[a] + w < dis[b]) { dis[b] = dis[a] + w; q.push({-dis[b], b}); } } } } void solve() { int n; cin>>n; int m; cin>>m; V<P<int,int>>d(m); for(int i=0;i<m;i++){ cin>>d[i].F>>d[i].S; } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int c=i*n; if(j+d[i].S<n){ adj[j+c].pb({j+d[i].S+c,1}); adj[j+d[i].S+c].pb({j+c,1}); } } } for(int i=0;i<m;i++){ int c=i*n; for(int j=0;j<m;j++){ int c1=j*n; if(i==j)continue; adj[d[i].F+c1].pb({d[i].F+c,0}); } } int ans=INT_MAX; bfs(n,d[0].F); for(int i=0;i<m;i++){ ans=min(ans,dis[d[1].F+i*n]); } if(ans>=1e8) cout<<-1<<endl; else { cout << ans << endl; } } int main(){ // file(); solve(); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'void file()':
skyscraper.cpp:14:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     freopen("input.txt.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:15:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     freopen("output.txt.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...