제출 #612605

#제출 시각아이디문제언어결과실행 시간메모리
612605krit3379Jakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
1035 ms197360 KiB
#include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #define N 30005 struct A{ int a,b,c; }; int a[N],p[N]; vector<int> g[N]; bitset<N> vis; gp_hash_table<int,int> s[N]; queue<A> q; int main(){ int n,m,i; scanf("%d %d",&n,&m); for(i=0;i<m;i++){ scanf("%d %d",&a[i],&p[i]); g[a[i]].push_back(p[i]); } q.push({a[0],p[0],0}); s[a[0]][p[0]]; while(!q.empty()){ auto [x,po,w]=q.front(); q.pop(); if(x==a[1]){printf("%d",w);return 0;} if(x>=po&&s[x-po].find(po)==s[x-po].end())q.push({x-po,po,w+1}),s[x-po][po]; if(x+po<n&&s[x+po].find(po)==s[x+po].end())q.push({x+po,po,w+1}),s[x+po][po]; if(vis[x])continue; vis[x]=true; for(auto po:g[x]){ if(x>=po&&s[x-po].find(po)==s[x-po].end())q.push({x-po,po,w+1}),s[x-po][po]; if(x+po<n&&s[x+po].find(po)==s[x+po].end())q.push({x+po,po,w+1}),s[x+po][po]; } } printf("-1"); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:21:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |     scanf("%d %d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~~
skyscraper.cpp:23:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         scanf("%d %d",&a[i],&p[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...