Submission #722355

#TimeUsernameProblemLanguageResultExecution timeMemory
722355n0sk1llJakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
645 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 bool vis[30003]; vector<int> psi[30003]; int km=0; const int sf=30'003; 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) psi[b].pb(p); dat[0].pb(s); fff(d,0,n*1000) { if (d-km*sf>=sf) { ff(i,0,sf) swap(dat[i],dat[i+sf]); ff(i,0,sf) vector<int>().swap(dat[i+sf]); ff(i,0,2*sf) dat[i].shrink_to_fit(); km++; } for (auto p : dat[d-km*sf]) { if (vis[p]) continue; vis[p]=1; if (p==t) return cout<<d,0; for (auto jmp : psi[p]) { for (int j=1;;j++) { if (p+j*jmp>=n) break; dat[d+j-km*sf].pb(p+j*jmp); } for (int j=1;;j++) { if (p-j*jmp<0) break; dat[d+j-km*sf].pb(p-j*jmp); } } } 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:73:13: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   73 |             if (vis[p]) continue; vis[p]=1;
      |             ^~
skyscraper.cpp:73:35: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   73 |             if (vis[p]) continue; vis[p]=1;
      |                                   ^~~
skyscraper.cpp:74:13: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized]
   74 |             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...