CSES - NOI 2024 - Results
Submission details
Task:Anime Shops
Sender:Róbert Kristian Freysson
Submission time:2024-03-06 17:34:25 +0200
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1, 3details
#20.01 s1, 3details
#30.01 s1, 3details
#40.01 s1, 3details
#50.24 s3details
#60.23 s3details
#70.23 s3details
#80.26 s3details
#90.18 s2, 3details
#10ACCEPTED0.18 s2, 3details
#11ACCEPTED0.20 s2, 3details
#120.18 s3details
#130.18 s3details
#140.18 s3details
#150.17 s3details
#160.18 s3details

Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

bool vis[100001];

int main() {
    ios_base::sync_with_stdio(false);
    memset(vis, 0, sizeof(vis));

    int n, m, k;
    cin >> n >> m >> k;

    unordered_set<int> cities;
    cities.reserve(n);

    for (int i = 0; i < k; i++) {
        int c;
        cin >> c;
        cities.insert(c - 1);
    }

    vector<vector<int>> graph(n);

    for (int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        a--, b--;

        graph[a].push_back(b);
        graph[b].push_back(a);
    }

    int inf = 1000000;
    int prev = -1, next = -1, dist_prev = inf, dist_next = inf;


    for (int i = 0; i < n; i++) {        
        if (cities.find(i) != cities.end()) {
            next = i;
            dist_next = i;
            break;
        }
    }

    for (int i = 0; i < n; i++) {
        if  (i == next) {
            bool found = false;
            for (int j = i + 1; j < n; j++) {
                if (cities.find(j) != cities.end()) {
                    next = j;
                    dist_next = j - i;
                    found = true;
                    break;
                }
            }

            if (!found) {
                dist_next = inf;
                next = -1;
            }

            cout << min(dist_next, dist_prev) << endl;
            prev = i;
            dist_prev = i - prev;
        } else {
            cout << min(dist_prev, dist_next) << endl;
        }
        dist_next--, dist_prev++;
    }
}

Test details

Test 1

Group: 1, 3

Verdict:

input
1000 2000 1
816
1 868
976 995
377 536
...

correct output
4 3 3 4 6 4 -1 4 5 2 2 5 5 3 5...

user output
815
814
813
812
811
...
Truncated

Test 2

Group: 1, 3

Verdict:

input
1000 2000 20
578 955 222 813 494 962 753 71...

correct output
5 6 4 3 4 2 -1 3 3 3 4 3 2 3 -...

user output
204
203
202
201
200
...
Truncated

Test 3

Group: 1, 3

Verdict:

input
1000 2000 100
945 230 119 680 975 520 490 28...

correct output
2 2 3 -1 2 -1 3 2 2 1 2 -1 3 2...

user output
8
7
6
5
4
...
Truncated

Test 4

Group: 1, 3

Verdict:

input
1000 2000 1000
150 443 960 545 218 487 896 38...

correct output
1 -1 1 1 -1 1 1 1 -1 1 1 1 -1 ...

user output
1
1
1
1
1
...
Truncated

Test 5

Group: 3

Verdict:

input
100000 200000 1
77222
59470 61811
43092 48939
14395 19964
...

correct output
8 10 8 8 8 8 8 8 9 7 7 8 8 8 6...

user output
77221
77220
77219
77218
77217
...
Truncated

Test 6

Group: 3

Verdict:

input
100000 200000 20
70440 82302 64483 96767 51485 ...

correct output
-1 8 6 5 5 7 6 7 6 6 8 5 6 4 5...

user output
735
734
733
732
731
...
Truncated

Test 7

Group: 3

Verdict:

input
100000 200000 100
68738 37820 55519 77758 46482 ...

correct output
4 5 5 5 5 4 6 -1 5 4 5 6 4 5 5...

user output
937
936
935
934
933
...
Truncated

Test 8

Group: 3

Verdict:

input
100000 200000 100000
47137 80137 73347 78145 9205 6...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
1
1
1
1
1
...
Truncated

Test 9

Group: 2, 3

Verdict:

input
100000 99999 1
44158
1 2
2 3
3 4
...

correct output
44157 44156 44155 44154 44153 ...

user output
44157
44156
44155
44154
44153
...
Truncated

Test 10

Group: 2, 3

Verdict: ACCEPTED

input
100000 99999 20
44158 25720 84658 90057 99607 ...

correct output
361 360 359 358 357 356 355 35...

user output
361
360
359
358
357
...
Truncated

Test 11

Group: 2, 3

Verdict: ACCEPTED

input
100000 99999 100000
44158 25720 84658 90057 99607 ...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
1
1
1
1
1
...
Truncated

Test 12

Group: 3

Verdict:

input
100000 99999 3
99998 99999 100000
1 2
1 3
1 4
...

correct output
33333 33332 33332 33332 33331 ...

user output
99997
99996
99995
99994
99993
...
Truncated

Test 13

Group: 3

Verdict:

input
100000 99999 300
99701 99702 99703 99704 99705 ...

correct output
333 333 333 333 333 333 333 33...

user output
99700
99699
99698
99697
99696
...
Truncated

Test 14

Group: 3

Verdict:

input
100000 99999 30000
70001 70002 70003 70004 70005 ...

correct output
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ...

user output
70000
69999
69998
69997
69996
...
Truncated

Test 15

Group: 3

Verdict:

input
100000 0 100000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...

user output
1
1
1
1
1
...
Truncated

Test 16

Group: 3

Verdict:

input
100000 100000 2
1 50001
1 2
2 3
3 4
...

correct output
50000 1 2 3 4 5 6 7 8 9 10 11 ...

user output
50000
1
2
3
4
...
Truncated