Submission #387962

# Submission time Handle Problem Language Result Execution time Memory
387962 2021-04-09T15:14:47 Z cpp219 Jakarta Skyscrapers (APIO15_skyscraper) C++14
36 / 100
1000 ms 133460 KB
#pragma GCC optimization "Ofast"
#pragma GCC optimization "unroll-loop"
#pragma GCC target ("avx2")

#include <bits/stdc++.h>
#define ll int
#define ld long double
#define fs first
#define sc second
using namespace std;
const ll N = 3e4 + 6;
const ll Log2 = 19;
const ll inf = 1e9 + 7;
typedef pair<ll,ll> LL;
vector<LL> v;
struct doge{
    ll pos,p,id;
};
doge a[N];
ll n,m,d[N];
map<LL,ll> mp;
vector<LL> g[N];

void Dij(){
    fill(d,d + N - 1,inf);
    priority_queue<LL,vector<LL>,greater<LL>> pq; pq.push({0,a[1].pos}); d[a[1].pos] = 0;
    while(!pq.empty()){
        LL t = pq.top(); pq.pop();
        ll u = t.sc;
        for (auto i : g[u]){
            ll v = i.fs,L = i.sc;
            if (d[v] > d[u] + L) d[v] = d[u] + L,pq.push({d[v],v});
        }
    }
    //for (auto i : g[1]) cout<<i.fs<<"x "; exit(0);
    //cout<<d[2]; exit(0);
    if (d[a[2].pos] != inf) cout<<d[a[2].pos];
    else cout<<-1;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    #define task "test"
    if (fopen(task".inp", "r")){
        freopen(task".inp", "r", stdin);
        //freopen(task".out", "w", stdout);
    }
    cin>>n>>m;
    for (ll i = 1;i <= m;i++){
        cin>>a[i].pos>>a[i].p,a[i].pos++;
        LL now = {a[i].pos,a[i].p};
        mp[now] = 1;
    }
    for (ll i = 1;i <= m;i++){
        LL now = {a[i].pos,a[i].p};
        ll cost = 1;
        for (ll j = now.fs + a[i].p;j <= n;j += a[i].p){
            //if (mp[{j,now.sc}]) break;
            //mp[{j,now.sc}] = 1; //cout<<j<<" ";
            g[now.fs].push_back({j,cost}),cost++;
            if (mp[{j,now.sc}]) break;
        }
        cost = 1; //return 0;
        for (ll j = now.fs - a[i].p;j > 0;j -= a[i].p){
            //
            //mp[{j,now.sc}] = 1;
            g[now.fs].push_back({j,cost}),cost++;
            if (mp[{j,now.sc}]) break;
            //if (now.fs == 5) cout<<j<<" x ";
        }
    }
    Dij();
}

Compilation message

skyscraper.cpp:1: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
    1 | #pragma GCC optimization "Ofast"
      | 
skyscraper.cpp:2: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
    2 | #pragma GCC optimization "unroll-loop"
      | 
skyscraper.cpp: In function 'int main()':
skyscraper.cpp:46:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   46 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1100 KB Output is correct
2 Correct 1 ms 1100 KB Output is correct
3 Correct 1 ms 1104 KB Output is correct
4 Correct 1 ms 1104 KB Output is correct
5 Correct 1 ms 1100 KB Output is correct
6 Correct 1 ms 1100 KB Output is correct
7 Correct 1 ms 1100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1100 KB Output is correct
2 Correct 1 ms 1100 KB Output is correct
3 Correct 1 ms 1100 KB Output is correct
4 Correct 1 ms 1100 KB Output is correct
5 Correct 1 ms 1100 KB Output is correct
6 Correct 1 ms 1100 KB Output is correct
7 Correct 2 ms 1100 KB Output is correct
8 Correct 1 ms 1100 KB Output is correct
9 Correct 1 ms 1100 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 3 ms 1484 KB Output is correct
12 Correct 8 ms 3268 KB Output is correct
13 Correct 1 ms 1228 KB Output is correct
14 Correct 3 ms 1484 KB Output is correct
15 Correct 3 ms 1484 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1100 KB Output is correct
2 Correct 1 ms 1100 KB Output is correct
3 Correct 1 ms 1100 KB Output is correct
4 Correct 1 ms 1100 KB Output is correct
5 Correct 1 ms 1100 KB Output is correct
6 Correct 1 ms 1100 KB Output is correct
7 Correct 1 ms 1100 KB Output is correct
8 Correct 1 ms 1104 KB Output is correct
9 Correct 1 ms 1100 KB Output is correct
10 Correct 2 ms 1228 KB Output is correct
11 Correct 3 ms 1484 KB Output is correct
12 Correct 8 ms 3260 KB Output is correct
13 Correct 1 ms 1228 KB Output is correct
14 Correct 3 ms 1484 KB Output is correct
15 Correct 3 ms 1484 KB Output is correct
16 Correct 2 ms 1356 KB Output is correct
17 Correct 6 ms 2208 KB Output is correct
18 Correct 3 ms 1612 KB Output is correct
19 Correct 2 ms 1484 KB Output is correct
20 Correct 2 ms 1356 KB Output is correct
21 Correct 3 ms 1228 KB Output is correct
22 Correct 3 ms 1484 KB Output is correct
23 Correct 3 ms 1612 KB Output is correct
24 Correct 6 ms 1996 KB Output is correct
25 Correct 4 ms 1740 KB Output is correct
26 Correct 311 ms 34540 KB Output is correct
27 Correct 263 ms 34388 KB Output is correct
28 Correct 8 ms 2764 KB Output is correct
29 Correct 24 ms 5684 KB Output is correct
30 Correct 6 ms 2552 KB Output is correct
31 Correct 13 ms 3660 KB Output is correct
32 Correct 9 ms 2864 KB Output is correct
33 Correct 59 ms 9924 KB Output is correct
34 Correct 62 ms 9928 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1100 KB Output is correct
2 Correct 1 ms 1100 KB Output is correct
3 Correct 1 ms 1100 KB Output is correct
4 Correct 1 ms 1100 KB Output is correct
5 Correct 1 ms 1100 KB Output is correct
6 Correct 1 ms 1100 KB Output is correct
7 Correct 1 ms 1100 KB Output is correct
8 Correct 1 ms 1100 KB Output is correct
9 Correct 1 ms 1100 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 3 ms 1484 KB Output is correct
12 Correct 8 ms 3264 KB Output is correct
13 Correct 1 ms 1228 KB Output is correct
14 Correct 3 ms 1484 KB Output is correct
15 Correct 3 ms 1484 KB Output is correct
16 Correct 2 ms 1356 KB Output is correct
17 Correct 7 ms 2252 KB Output is correct
18 Correct 3 ms 1612 KB Output is correct
19 Correct 2 ms 1484 KB Output is correct
20 Correct 2 ms 1260 KB Output is correct
21 Correct 2 ms 1228 KB Output is correct
22 Correct 3 ms 1484 KB Output is correct
23 Correct 3 ms 1576 KB Output is correct
24 Correct 6 ms 2116 KB Output is correct
25 Correct 4 ms 1740 KB Output is correct
26 Correct 305 ms 34580 KB Output is correct
27 Correct 265 ms 34388 KB Output is correct
28 Correct 9 ms 2764 KB Output is correct
29 Correct 26 ms 5800 KB Output is correct
30 Correct 7 ms 2508 KB Output is correct
31 Correct 13 ms 3672 KB Output is correct
32 Correct 9 ms 2856 KB Output is correct
33 Correct 55 ms 9880 KB Output is correct
34 Correct 66 ms 9892 KB Output is correct
35 Correct 66 ms 8844 KB Output is correct
36 Correct 8 ms 2508 KB Output is correct
37 Correct 124 ms 14256 KB Output is correct
38 Correct 111 ms 13364 KB Output is correct
39 Correct 126 ms 13324 KB Output is correct
40 Correct 119 ms 13252 KB Output is correct
41 Correct 126 ms 13352 KB Output is correct
42 Execution timed out 1094 ms 133424 KB Time limit exceeded
43 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1100 KB Output is correct
2 Correct 1 ms 1100 KB Output is correct
3 Correct 1 ms 1100 KB Output is correct
4 Correct 1 ms 1100 KB Output is correct
5 Correct 1 ms 1100 KB Output is correct
6 Correct 1 ms 1100 KB Output is correct
7 Correct 1 ms 1192 KB Output is correct
8 Correct 1 ms 1100 KB Output is correct
9 Correct 1 ms 1100 KB Output is correct
10 Correct 1 ms 1232 KB Output is correct
11 Correct 3 ms 1484 KB Output is correct
12 Correct 8 ms 3268 KB Output is correct
13 Correct 2 ms 1228 KB Output is correct
14 Correct 3 ms 1484 KB Output is correct
15 Correct 3 ms 1484 KB Output is correct
16 Correct 3 ms 1356 KB Output is correct
17 Correct 7 ms 2252 KB Output is correct
18 Correct 4 ms 1612 KB Output is correct
19 Correct 2 ms 1484 KB Output is correct
20 Correct 4 ms 1344 KB Output is correct
21 Correct 2 ms 1228 KB Output is correct
22 Correct 3 ms 1484 KB Output is correct
23 Correct 3 ms 1536 KB Output is correct
24 Correct 6 ms 2044 KB Output is correct
25 Correct 4 ms 1740 KB Output is correct
26 Correct 309 ms 34624 KB Output is correct
27 Correct 267 ms 34388 KB Output is correct
28 Correct 9 ms 2704 KB Output is correct
29 Correct 27 ms 5684 KB Output is correct
30 Correct 7 ms 2540 KB Output is correct
31 Correct 13 ms 3628 KB Output is correct
32 Correct 10 ms 2896 KB Output is correct
33 Correct 57 ms 9952 KB Output is correct
34 Correct 64 ms 9936 KB Output is correct
35 Correct 71 ms 8808 KB Output is correct
36 Correct 10 ms 2508 KB Output is correct
37 Correct 180 ms 14244 KB Output is correct
38 Correct 115 ms 13268 KB Output is correct
39 Correct 114 ms 13384 KB Output is correct
40 Correct 124 ms 13412 KB Output is correct
41 Correct 112 ms 13240 KB Output is correct
42 Execution timed out 1094 ms 133460 KB Time limit exceeded
43 Halted 0 ms 0 KB -