제출 #217825

#제출 시각아이디문제언어결과실행 시간메모리
217825milagrosvilla1803Birmingham (COCI20_birmingham)C++11
70 / 70
116 ms15988 KiB
#include <bits/stdc++.h>
using namespace std;
int n,m,q,k;
vector<int>ady[200005];
vector<int>d[100005];
int enterarse[100005];
int distancia[100005];
int aux;
int x,y;
queue<int> fila;
short color[100005];
void bfs(){
    while(!fila.empty()){
        int nodoAct=fila.front(); fila.pop();
        for(int i=0;i<ady[nodoAct].size();i++){
            int hijo=ady[nodoAct][i];
            if(color[hijo]==0){
                color[hijo]=1;
                distancia[hijo]=distancia[nodoAct]+1;
                fila.push(hijo);
            }
        }
        color[nodoAct]=2;
    }
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>m>>q>>k;
    memset(enterarse,-1,n);
    for(int i=0;i<q;i++){
        cin>>aux;
        enterarse[aux]=0;
        fila.push(aux);
        color[aux]=1;
        distancia[aux]=0;
    }
    for(int i=0;i<m;i++){
        cin>>x>>y;
        ady[x].push_back(y);
        ady[y].push_back(x);
    }
    bfs();
    for(int i=1;i<=n;i++)
        d[distancia[i]].push_back(i);
    int adj=q,a=1,dia=1;
    int inicio=0;
    while(adj<n){
        while(a<=inicio+k*dia){
            for(int i=0;i<d[a].size();i++){
                adj++;
                enterarse[d[a][i]]=dia;
            }
            a++;
        }
        inicio+=k*dia;
        dia++;
    }
    for(int i=1;i<=n;i++)
        cout<<enterarse[i]<<" ";
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

birmingham.cpp: In function 'void bfs()':
birmingham.cpp:15:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<ady[nodoAct].size();i++){
                     ~^~~~~~~~~~~~~~~~~~~~
birmingham.cpp: In function 'int main()':
birmingham.cpp:50:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int i=0;i<d[a].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...