Submission #559436

#TimeUsernameProblemLanguageResultExecution timeMemory
559436kappaBirmingham (COCI20_birmingham)C++14
70 / 70
207 ms20652 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pb push_back
#define st first
#define nd second
#define MOD 1000000007
typedef pair<ll, ll> pii;
typedef pair<pii, ll> piiq;

const ll maxn = 2e5 + 5;

ll n, m, qu, k, vis[maxn], dis[maxn], ans[maxn];

vector<ll> v[maxn];

int main(){
    cin >> n >> m >> qu >> k;
    queue<pii> q;
    for (int i = 0; i < qu; i++)
    {
        ll a;
        cin >> a;
        q.push({a, 0});
    }
    for (int i = 0; i < m; i++)
    {
        ll y, u;
        cin >> y >> u;
        v[y].pb(u);
        v[u].pb(y);
    }

    while(!q.empty()){
        pii curr = q.front();
        q.pop();

        if(vis[curr.st]){
            continue;
        }
        vis[curr.st] = 1;

        dis[curr.st] = curr.nd;

        for (int i = 0; i < v[curr.st].size(); i++)
        {
            ll next = v[curr.st][i];
            q.push({next, curr.nd + 1});
        }
    }

    ll pt = 1, j = 1;
    while (pt < maxn) {
        for(int i = pt; i <= pt + j * k; i++) {
            if (i < maxn) ans[i] = j;
        }
        pt += j * k;
        j++;
    }

    for (int i = 1; i <= n; i++)
    {
        cout << ans[dis[i]] << " ";
    }
}

Compilation message (stderr)

birmingham.cpp: In function 'int main()':
birmingham.cpp:45:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         for (int i = 0; i < v[curr.st].size(); i++)
      |                         ~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...