Submission #404537

# Submission time Handle Problem Language Result Execution time Memory
404537 2021-05-14T14:36:38 Z sad Jakarta Skyscrapers (APIO15_skyscraper) C++14
10 / 100
1 ms 972 KB
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
using namespace std;
int n,m;
const int N=2009;
int vis[N][N],a[N][N],yes[N];
vector<pair<int,int>>v[N];
ll dis[N];
priority_queue<pair<ll,int>>q;
void go(int x,int y)
{   for(int i=x+y;i<n;i+=y)
    {
        if(vis[x][i]==1)continue;
        vis[x][i]=1;
        int z=i-x;z/=y;
        v[x].pb({i,z});
    }
    for(int i=x-y;i>-1;i-=y)
    {
        if(vis[x][i]==1)continue;
        vis[x][i]=1;
        int z=x-i;z/=y;
        v[x].pb({i,z});
    }
}
int main()
{int ww=0;
    cin>>n>>m;int w=0;
    for(int i=0;i<m;i++)
    {
        int x,y;cin>>x>>y;
        if(i==0)w=x;
        if(i==1)ww=x;
        a[x][y]=1;
    }int MX=20;
    for(int i=0;i<n;i++)
    {
        for(int j=MX;j>-1;j--)
        {
            if(a[i][j]==0)continue;
            go(i,j);
        }
    }
    q.push({0,w});for(int i=0;i<n;i++)dis[i]=1e16;
    while(!q.empty())
    {
        pair<int,int>x=q.top();
        q.pop();
        if(yes[x.se]==1)continue;
        //cout<<x.se<<endl;
        yes[x.se]=1;
        dis[x.se]=-x.fi;
        for(auto it:v[x.se])
        {
            if(yes[it.fi])continue;
            if(dis[x.se]+it.se>=dis[it.fi])continue;
            dis[it.fi]=dis[x.se]+it.se;
            q.push({-dis[it.fi],it.fi});
        }
    }
    if(yes[ww]==0)
    {
        cout<<-1;return 0;
    }cout<<dis[ww];return 0;

}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 352 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 460 KB Output is correct
10 Incorrect 1 ms 972 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 352 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 460 KB Output is correct
10 Incorrect 1 ms 972 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 476 KB Output is correct
10 Incorrect 1 ms 972 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 352 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 352 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 460 KB Output is correct
10 Incorrect 1 ms 972 KB Output isn't correct
11 Halted 0 ms 0 KB -