답안 #1109604

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1109604 2024-11-07T06:58:58 Z simona1230 Jakarta Skyscrapers (APIO15_skyscraper) C++17
36 / 100
317 ms 262144 KB
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

struct edge
{
    long long x,d;
    edge(){}
    edge(long long _x,long long _d)
    {
        x=_x;
        d=_d;
    }

    bool operator<(const edge&e)const
    {
        return e.d<d;
    }
};

long long n,m;
vector<edge> v[100001];
void read()
{
    cin>>n>>m;
    for(long long i=0;i<m;i++)
    {
        long long x,y;
        cin>>x>>y;
        for(long long j=x;j<n;j+=y)
        {
            //cout<<i<<" "<<j+m<<endl;
            v[i].push_back({j+m,(j-x)/y});
        }

        for(long long j=x-y;j>=0;j-=y)
        {
            //cout<<i<<" "<<j+m<<endl;
            v[i].push_back({j+m,(x-j)/y});
        }

        //cout<<x+m<<" "<<i<<endl;
        v[x+m].push_back({i,0});
    }
}

long long d[100001];
priority_queue<edge> q;
void dijkstra()
{
    for(long long i=0;i<100000;i++)
        d[i]=1e18;

    d[0]=0;
    q.push({0,0});
    while(q.size())
    {
        edge e=q.top();
        //cout<<e.x<<endl;
        q.pop();

        if(d[e.x]>=e.d)
        {
            for(long long i=0;i<v[e.x].size();i++)
            {
                edge nb=v[e.x][i];
                if(nb.d+e.d<d[nb.x])
                {
                    d[nb.x]=nb.d+e.d;
                    q.push({nb.x,d[nb.x]});
                }
            }
        }
    }
}

int main()
{
    read();
    dijkstra();
    if(d[1]==1e18)d[1]=-1;
    cout<<d[1]<<endl;
    return 0;
}

Compilation message

skyscraper.cpp: In function 'void dijkstra()':
skyscraper.cpp:64:32: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<edge>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |             for(long long i=0;i<v[e.x].size();i++)
      |                               ~^~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3408 KB Output is correct
2 Correct 2 ms 3408 KB Output is correct
3 Correct 2 ms 3408 KB Output is correct
4 Correct 2 ms 3408 KB Output is correct
5 Correct 2 ms 3408 KB Output is correct
6 Correct 2 ms 3408 KB Output is correct
7 Correct 2 ms 3408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3408 KB Output is correct
2 Correct 2 ms 3408 KB Output is correct
3 Correct 2 ms 3408 KB Output is correct
4 Correct 2 ms 3408 KB Output is correct
5 Correct 2 ms 3408 KB Output is correct
6 Correct 2 ms 3408 KB Output is correct
7 Correct 2 ms 3408 KB Output is correct
8 Correct 2 ms 3408 KB Output is correct
9 Correct 2 ms 3408 KB Output is correct
10 Correct 3 ms 3408 KB Output is correct
11 Correct 3 ms 3664 KB Output is correct
12 Correct 11 ms 7504 KB Output is correct
13 Correct 8 ms 7504 KB Output is correct
14 Correct 3 ms 3664 KB Output is correct
15 Correct 3 ms 3836 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3408 KB Output is correct
2 Correct 2 ms 3408 KB Output is correct
3 Correct 3 ms 3408 KB Output is correct
4 Correct 2 ms 3408 KB Output is correct
5 Correct 2 ms 3408 KB Output is correct
6 Correct 2 ms 3408 KB Output is correct
7 Correct 2 ms 3372 KB Output is correct
8 Correct 2 ms 3408 KB Output is correct
9 Correct 2 ms 3408 KB Output is correct
10 Correct 2 ms 3408 KB Output is correct
11 Correct 3 ms 3664 KB Output is correct
12 Correct 7 ms 7504 KB Output is correct
13 Correct 8 ms 7508 KB Output is correct
14 Correct 2 ms 3664 KB Output is correct
15 Correct 3 ms 3664 KB Output is correct
16 Correct 2 ms 3664 KB Output is correct
17 Correct 4 ms 3920 KB Output is correct
18 Correct 2 ms 3664 KB Output is correct
19 Correct 2 ms 3664 KB Output is correct
20 Correct 83 ms 67656 KB Output is correct
21 Correct 4 ms 3452 KB Output is correct
22 Correct 2 ms 3664 KB Output is correct
23 Correct 3 ms 3664 KB Output is correct
24 Correct 4 ms 3920 KB Output is correct
25 Correct 3 ms 3664 KB Output is correct
26 Correct 87 ms 61408 KB Output is correct
27 Correct 77 ms 58184 KB Output is correct
28 Correct 5 ms 3920 KB Output is correct
29 Correct 5 ms 5200 KB Output is correct
30 Correct 4 ms 4344 KB Output is correct
31 Correct 4 ms 4432 KB Output is correct
32 Correct 3 ms 4160 KB Output is correct
33 Correct 7 ms 6600 KB Output is correct
34 Correct 7 ms 6736 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3408 KB Output is correct
2 Correct 2 ms 3408 KB Output is correct
3 Correct 2 ms 3576 KB Output is correct
4 Correct 2 ms 3408 KB Output is correct
5 Correct 2 ms 3408 KB Output is correct
6 Correct 2 ms 3408 KB Output is correct
7 Correct 2 ms 3408 KB Output is correct
8 Correct 2 ms 3408 KB Output is correct
9 Correct 2 ms 3392 KB Output is correct
10 Correct 2 ms 3408 KB Output is correct
11 Correct 2 ms 3664 KB Output is correct
12 Correct 7 ms 7504 KB Output is correct
13 Correct 7 ms 7716 KB Output is correct
14 Correct 3 ms 3664 KB Output is correct
15 Correct 3 ms 3756 KB Output is correct
16 Correct 2 ms 3664 KB Output is correct
17 Correct 3 ms 4176 KB Output is correct
18 Correct 3 ms 3664 KB Output is correct
19 Correct 2 ms 3664 KB Output is correct
20 Correct 89 ms 67916 KB Output is correct
21 Correct 2 ms 3408 KB Output is correct
22 Correct 2 ms 3664 KB Output is correct
23 Correct 3 ms 3676 KB Output is correct
24 Correct 4 ms 3768 KB Output is correct
25 Correct 5 ms 4088 KB Output is correct
26 Correct 88 ms 61512 KB Output is correct
27 Correct 80 ms 58148 KB Output is correct
28 Correct 3 ms 3920 KB Output is correct
29 Correct 5 ms 5200 KB Output is correct
30 Correct 4 ms 4176 KB Output is correct
31 Correct 4 ms 4432 KB Output is correct
32 Correct 3 ms 4176 KB Output is correct
33 Correct 6 ms 6760 KB Output is correct
34 Correct 6 ms 6736 KB Output is correct
35 Correct 17 ms 7760 KB Output is correct
36 Correct 4 ms 4176 KB Output is correct
37 Correct 18 ms 10528 KB Output is correct
38 Correct 24 ms 9944 KB Output is correct
39 Correct 24 ms 10048 KB Output is correct
40 Correct 23 ms 9832 KB Output is correct
41 Correct 22 ms 9552 KB Output is correct
42 Runtime error 297 ms 262144 KB Execution killed with signal 9
43 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3408 KB Output is correct
2 Correct 2 ms 3408 KB Output is correct
3 Correct 2 ms 3408 KB Output is correct
4 Correct 2 ms 3408 KB Output is correct
5 Correct 2 ms 3408 KB Output is correct
6 Correct 2 ms 3408 KB Output is correct
7 Correct 2 ms 3408 KB Output is correct
8 Correct 1 ms 3408 KB Output is correct
9 Correct 2 ms 3408 KB Output is correct
10 Correct 2 ms 3408 KB Output is correct
11 Correct 3 ms 3664 KB Output is correct
12 Correct 7 ms 7604 KB Output is correct
13 Correct 7 ms 7516 KB Output is correct
14 Correct 3 ms 3664 KB Output is correct
15 Correct 2 ms 3664 KB Output is correct
16 Correct 2 ms 3664 KB Output is correct
17 Correct 3 ms 4176 KB Output is correct
18 Correct 2 ms 3664 KB Output is correct
19 Correct 2 ms 3664 KB Output is correct
20 Correct 75 ms 67672 KB Output is correct
21 Correct 3 ms 3664 KB Output is correct
22 Correct 3 ms 3664 KB Output is correct
23 Correct 3 ms 3664 KB Output is correct
24 Correct 4 ms 3920 KB Output is correct
25 Correct 3 ms 3920 KB Output is correct
26 Correct 81 ms 61392 KB Output is correct
27 Correct 75 ms 58184 KB Output is correct
28 Correct 3 ms 3920 KB Output is correct
29 Correct 5 ms 5240 KB Output is correct
30 Correct 3 ms 4188 KB Output is correct
31 Correct 4 ms 4432 KB Output is correct
32 Correct 3 ms 4176 KB Output is correct
33 Correct 7 ms 6736 KB Output is correct
34 Correct 8 ms 6736 KB Output is correct
35 Correct 19 ms 8016 KB Output is correct
36 Correct 8 ms 4188 KB Output is correct
37 Correct 23 ms 10720 KB Output is correct
38 Correct 23 ms 9808 KB Output is correct
39 Correct 22 ms 10064 KB Output is correct
40 Correct 22 ms 9732 KB Output is correct
41 Correct 21 ms 9552 KB Output is correct
42 Runtime error 317 ms 262144 KB Execution killed with signal 9
43 Halted 0 ms 0 KB -