제출 #1148356

#제출 시각아이디문제언어결과실행 시간메모리
1148356irmuunPaths (BOI18_paths)C++20
0 / 100
36 ms7748 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n,m,k;
    cin>>n>>m>>k;
    ll c[n+5];
    for(ll i=1;i<=n;i++){
        cin>>c[i];
    }
    vector<ll>g[n+5];
    vector<ll>ans(6,0);
    for(ll i=1;i<=m;i++){
        ll a,b;
        cin>>a>>b;
        g[a].pb(b);
        g[b].pb(a);
        if(c[a]!=c[b]){
            ans[2]+=2;
        }
    }
    vector<ll>cnt(k+5,0);
    for(ll i=1;i<=n;i++){
        ll f=g[i].size();
        ans[3]+=f*(f-1);
        for(ll j:g[i]){
            ans[3]-=cnt[c[j]]*2;
            cnt[c[j]]++;
        }
        for(ll j:g[i]){
            cnt[c[j]]--;
        }
    }
    for(ll i=2;i<=k;i++){
        ans[1]+=ans[i];
    }
    cout<<ans[1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...