158732025-03-07 11:14:27UVinceGlassworkscpp17Futási hiba 40/100257ms262144 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

vector<vector<int>> g;
vector<int> c;
vector<vector<int>> d;

void bfs(int v) {
    queue<int> q;
    q.push(v);
    d[v][v]=0;
    while (!q.empty()){
        int cur = q.front();
        q.pop();
        for (int to : g[cur]){
            if (d[v][to]==-1) {
                d[v][to]=d[v][cur]+1;
                q.push(to);
            }
        }
    }
}


int main(){
    int n,m;
    cin>>n>>m;
    g.resize(n+1);
    c.resize(n+1);
    d.resize(n+1, vector<int> (n+1, -1));
    for (int i=0;i<n;i++){
        cin>>c[i];
    }
    for (int i=0;i<m;i++){
        int a,b;
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    for (int i=0;i<n;i++) bfs(i);

    int ans=INT_MAX;
    for (int i=0;i<n;i++){
        int mn=-1;
        for (int j=0;j<n;j++){
            if (c[j]==c[i]) continue;
            if (d[i][j]==-1) continue;

            if (mn==-1 || d[i][j]<d[i][mn]) mn=j;
        }
        if (mn==-1) continue;
        int mn2=-1;
        for (int j=0;j<n;j++){
            if (c[j]==c[i] || c[j]==c[mn]) continue;
            if (d[i][j]==-1) continue;

            if (mn2==-1 || d[i][j]<d[i][mn2]) mn2=j;
        }
        if (mn2==-1) continue;
        ans=min(ans, d[i][mn]+d[i][mn2]);
    }
    if (ans==INT_MAX){
        cout<<-1;
        return 0;
    }
    cout<<ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask220/20
3Elfogadva6ms1332 KiB
4Elfogadva4ms1332 KiB
5Elfogadva4ms1436 KiB
6Elfogadva6ms1332 KiB
7Elfogadva6ms1332 KiB
8Elfogadva6ms1336 KiB
9Elfogadva3ms824 KiB
10Elfogadva4ms896 KiB
11Elfogadva4ms820 KiB
subtask320/20
12Elfogadva18ms4232 KiB
13Elfogadva18ms4400 KiB
14Elfogadva19ms4408 KiB
15Elfogadva27ms4404 KiB
16Elfogadva27ms4596 KiB
17Elfogadva26ms4408 KiB
18Elfogadva27ms4404 KiB
19Elfogadva23ms4404 KiB
20Elfogadva17ms4404 KiB
subtask40/20
21Futási hiba211ms262144 KiB
22Futási hiba209ms262144 KiB
23Futási hiba252ms262144 KiB
24Futási hiba252ms262144 KiB
25Futási hiba257ms262144 KiB
26Futási hiba207ms262144 KiB
27Futási hiba208ms262144 KiB
28Futási hiba254ms262144 KiB
29Futási hiba211ms262144 KiB
30Futási hiba203ms262144 KiB
subtask50/40
31Futási hiba207ms262144 KiB
32Futási hiba203ms262144 KiB
33Futási hiba250ms262144 KiB
34Futási hiba248ms262144 KiB
35Futási hiba202ms262144 KiB
36Futási hiba203ms262144 KiB
37Futási hiba246ms262144 KiB
38Futási hiba245ms262144 KiB
39Futási hiba210ms262144 KiB
40Futási hiba204ms262144 KiB
41Futási hiba231ms262144 KiB
42Futási hiba246ms262144 KiB
43Futási hiba206ms262144 KiB
44Futási hiba209ms262144 KiB
45Futási hiba200ms262144 KiB
46Futási hiba247ms262144 KiB
47Futási hiba248ms262144 KiB