# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
531133 | Hanksburger | Jakarta Skyscrapers (APIO15_skyscraper) | C++17 | 150 ms | 262148 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int dist[10500005], a[30005][175];
vector<int> adj[10500005];
deque<int> deq;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, m, s, t, sz;
cin >> n >> m;
sz=n;
for (int i=0; i<m; i++)
{
int b, p;
cin >> b >> p;
if (i==0)
s=b;
else if (i==1)
t=b;
if (p*p<=m)
{
if (!a[b][p])
{
a[b%p][p]=sz;
sz++;
adj[a[b%p][p]].push_back(b%p*2);
for (int j=b%p+p; j<n; j+=p)
{
a[j][p]=sz;
sz++;
adj[a[j][p]].push_back(j*2);
adj[a[j][p]].push_back(a[j-p][p]*2+1);
adj[a[j-p][p]].push_back(a[j][p]*2+1);
}
}
adj[b].push_back(a[b][p]*2);
}
else
{
int prev=b;
for (int j=b-p; j>=0; j-=p)
{
adj[prev].push_back(sz*2+1);
adj[sz].push_back(j*2);
prev=sz;
sz++;
}
prev=b;
for (int j=b+p; j<n; j+=p)
{
adj[prev].push_back(sz*2+1);
adj[sz].push_back(j*2);
prev=sz;
sz++;
}
}
}
for (int i=0; i<sz; i++)
dist[i]=1e9;
dist[s]=0;
deq.push_back(s);
while (!deq.empty())
{
int u=deq.front();
deq.pop_front();
for (int i=0; i<adj[u].size(); i++)
{
int v=adj[u][i]>>1, w=adj[u][i]&1;
if (dist[v]==1e9)
{
dist[v]=dist[u]+w;
if (w)
deq.push_back(v);
else
deq.push_front(v);
}
}
}
if (dist[t]==1e9)
cout << -1;
else
cout << dist[t];
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |