Submission #722016

#TimeUsernameProblemLanguageResultExecution timeMemory
722016n0sk1llJakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
331 ms262144 KiB
#include <bits/stdc++.h> #define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cerr.tie(0) #define mp make_pair #define xx first #define yy second #define pb push_back #define pf push_front #define popb pop_back #define popf pop_front #define all(x) x.begin(),x.end() #define ff(i,a,b) for (int i = a; i < b; i++) #define fff(i,a,b) for (int i = a; i <= b; i++) #define bff(i,a,b) for (int i = b-1; i >= a; i--) #define bfff(i,a,b) for (int i = b; i >= a; i--) using namespace std; long double typedef ld; unsigned int typedef ui; long long int typedef li; pair<int,int> typedef pii; pair<li,li> typedef pli; pair<ld,ld> typedef pld; vector<vector<int>> typedef graph; unsigned long long int typedef ull; //const int mod = 998244353; //const int mod = 1000000007; //Note to self: Check for overflow vector<pii> g[30003]; bool vis[30003]; int km=0; const int sf=2'000'000; vector<int> dat[2*sf+15]; int main() { FAST; int n,m; cin>>n>>m; set<pii> doges; int s,t; ff(i,0,m) { int b,p; cin>>b>>p; doges.insert({b,p}); if (i==0) s=b; if (i==1) t=b; } for (auto [b,p] : doges) { for (int i=1;;i++) { if (b+i*p>=n) break; g[b].pb({b+i*p,i}); } for (int i=1;;i++) { if (b-i*p<0) break; g[b].pb({b-i*p,i}); } } dat[0].pb(s); fff(d,0,n*1000) { if (d-km*sf>=sf) { ff(i,0,sf) dat[i]=dat[i+sf]; ff(i,0,sf) dat[i+sf].clear(); km++; } for (auto p : dat[d-km*sf]) { if (vis[p]) continue; vis[p]=1; if (p==t) return cout<<d,0; for (auto it : g[p]) dat[d+it.yy-km*sf].pb(it.xx); } dat[d-km*sf].clear(); } cout<<-1; } //Note to self: Check for overflow /* 5 3 0 2 1 1 4 1 */

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:84:13: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   84 |             if (vis[p]) continue; vis[p]=1;
      |             ^~
skyscraper.cpp:84:35: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   84 |             if (vis[p]) continue; vis[p]=1;
      |                                   ^~~
skyscraper.cpp:85:13: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized]
   85 |             if (p==t) return cout<<d,0;
      |             ^~
#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...