제출 #1095291

#제출 시각아이디문제언어결과실행 시간메모리
1095291andrewpPaths (BOI18_paths)C++14
20 / 100
126 ms25172 KiB
//Dedicated to my love, ivaziva #pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; #define int long long using pii = pair<int, int>; using ll = int64_t; #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define dbg(x) cerr<<#x<<": "<<x<<'\n'; #define dbga(A,l_,r_){for(int i_=l_;i_<=r_;i_++)cerr<<A[i_]<<' ';cerr<<'\n';} #define dbgv(a_){for(auto x_:a_) cerr<<x_<<' ';cerr<<'\n';} const int N = 3e5 + 20; int n, m, k, a[N], ans; vector<int> g[N]; int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cerr.tie(nullptr); cin >> n >> m >> k; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } ans = 0; if (k >= 2) { for (int i = 1; i <= n; i++) { for (int u : g[i]) { if (a[u] != a[i]) { ans++; } } } } if (k >= 3) { for (int i = 1; i <= n; i++) { vector<int> cnt(k + 1, 0); for (auto u : g[i]) { cnt[a[u]]++; } for (int x = 1; x <= k; x++) { for (int y = 1; y <= k; y++) { if (x != y && x != a[i] && y != a[i]) { ans += cnt[x] * cnt[y]; } } } } } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...