답안 #219360

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
219360 2020-04-05T07:41:28 Z kartel Birmingham (COCI20_birmingham) C++14
70 / 70
439 ms 22376 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define in(x) freopen(x, "r", stdin)
#define out(x) freopen(x, "w", stdout)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")
#define F first
#define S second
#define pb push_back
#define N +400500
//#define M ll(1e9 + 7)
#define sz(x) (int)x.size()
#define re return
#define oo ll(1e18)
#define el '\n'
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef long long ll;
typedef long double ld;

ll d[N], n, m, q, k, x, y, i, pr[N];
priority_queue <ll, vector <ll> > qu;
vector <ll> g[N];

int main()
{
    srand(time(0));
    ios_base::sync_with_stdio(0);
    iostream::sync_with_stdio(0);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
//    in("input.txt");
//    out("output.txt");
    cin >> n >> m >> q >> k;
    for (i = 1; i <= n; i++) d[i] = 1e9;
    for (i = 1; i <= n; i++) pr[i] = i + pr[i - 1];
    for (i = 1; i <= n; i++) pr[i] = pr[i] * k;
    for (i = 1; i <= q; i++)
    {
        cin >> x;
        d[x] = 0;
        qu.push(x);
    }
    for (i = 1; i <= m; i++)
    {
        cin >> x >> y;
        g[x].pb(y);
        g[y].pb(x);
    }
    while (qu.size())
    {
        int v = qu.top();qu.pop();

        for (auto u : g[v])
            if (d[u] > d[v] + 1)
        {
            d[u] = d[v] + 1;
            qu.push(u);
        }

    }

    for (i = 1; i <= n; i++)
    {
        if (d[i] == 0) cout << "0 ";
        else cout << (lower_bound(pr + 1, pr + 1 + n, d[i]) - pr) << " ";
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 9728 KB Output is correct
2 Correct 10 ms 9728 KB Output is correct
3 Correct 11 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 9728 KB Output is correct
2 Correct 10 ms 9856 KB Output is correct
3 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 9728 KB Output is correct
2 Correct 12 ms 9728 KB Output is correct
3 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 9728 KB Output is correct
2 Correct 10 ms 9856 KB Output is correct
3 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 9728 KB Output is correct
2 Correct 10 ms 9728 KB Output is correct
3 Correct 11 ms 9728 KB Output is correct
4 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 9728 KB Output is correct
2 Correct 10 ms 9728 KB Output is correct
3 Correct 10 ms 9728 KB Output is correct
4 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 9728 KB Output is correct
2 Correct 10 ms 9728 KB Output is correct
3 Correct 10 ms 9728 KB Output is correct
4 Correct 10 ms 9728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 401 ms 19796 KB Output is correct
2 Correct 347 ms 20204 KB Output is correct
3 Correct 163 ms 18548 KB Output is correct
4 Correct 321 ms 19184 KB Output is correct
5 Correct 377 ms 19436 KB Output is correct
6 Correct 137 ms 18540 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 424 ms 20204 KB Output is correct
2 Correct 335 ms 20208 KB Output is correct
3 Correct 141 ms 18292 KB Output is correct
4 Correct 404 ms 22376 KB Output is correct
5 Correct 439 ms 22116 KB Output is correct
6 Correct 113 ms 17772 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 353 ms 19824 KB Output is correct
2 Correct 365 ms 20328 KB Output is correct
3 Correct 137 ms 18548 KB Output is correct
4 Correct 368 ms 20332 KB Output is correct
5 Correct 351 ms 19700 KB Output is correct
6 Correct 120 ms 17904 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 361 ms 19484 KB Output is correct
2 Correct 318 ms 19952 KB Output is correct
3 Correct 154 ms 18420 KB Output is correct
4 Correct 376 ms 19900 KB Output is correct
5 Correct 395 ms 19308 KB Output is correct
6 Correct 126 ms 18032 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 353 ms 19436 KB Output is correct
2 Correct 351 ms 19688 KB Output is correct
3 Correct 165 ms 17912 KB Output is correct
4 Correct 425 ms 19628 KB Output is correct
5 Correct 412 ms 19696 KB Output is correct
6 Correct 120 ms 17644 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 415 ms 19412 KB Output is correct
2 Correct 405 ms 19816 KB Output is correct
3 Correct 124 ms 17780 KB Output is correct
4 Correct 399 ms 19960 KB Output is correct
5 Correct 342 ms 19720 KB Output is correct
6 Correct 119 ms 17900 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 353 ms 19632 KB Output is correct
2 Correct 412 ms 19280 KB Output is correct
3 Correct 153 ms 18520 KB Output is correct
4 Correct 397 ms 19716 KB Output is correct
5 Correct 348 ms 19824 KB Output is correct
6 Correct 149 ms 18608 KB Output is correct