Submission #56295

#TimeUsernameProblemLanguageResultExecution timeMemory
56295model_codePaths (BOI18_paths)C++17
100 / 100
695 ms171808 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define trav(a, x) for(auto& a : x) #define all(x) x.begin(), x.end() #define sz(x) (int)(x).size() typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<ll> vl; const ll big = 1000000007; const ll mod = 998244353; ll n,m,k; vector<vl> C(300001, vl()); vl colors; ll DP1[300001][5] = {0}; ll DP2[300001][5][5] = {0}; int main() { ios_base::sync_with_stdio(0); cin.tie(0); //freopen("input.txt","r",stdin); //freopen("autput.txt","w",stdout); ll a,b,c,e; cin >> n >> m >> k; for(int c1 = 0; c1 < n; c1++){ cin >> a; a--; colors.push_back(a); } for(int c1 = 0; c1 < m; c1++){ cin >> a >> b; a--; b--; C[a].push_back(b); C[b].push_back(a); } for(int c1 = 0; c1 < n; c1++){ for(int c2 = 0; c2 < sz(C[c1]); c2++){ DP1[c1][colors[C[c1][c2]]]++; } } for(int c1 = 0; c1 < n; c1++){ for(int c2 = 0; c2 < sz(C[c1]); c2++){ for(int c3 = 0; c3 < 5; c3++){ int c4 = colors[C[c1][c2]]; DP2[c1][min(c3,c4)][max(c3,c4)] += DP1[C[c1][c2]][c3]; } } } ll ans1 = 0; ll ans2 = 0; ll ans3 = 0; ll ans4 = 0; for(int c1 = 0; c1 < n; c1++){ for(int c2 = 0; c2 < 5; c2++){ if(c2 == colors[c1])continue; ans1 += DP1[c1][c2]; for(int c3 = c2+1; c3 < 5; c3++){ if(c3 == colors[c1])continue; ans2 += DP1[c1][c2]*DP1[c1][c3]; ans2 += DP1[c1][c3]*DP1[c1][c2]; for(int c4 = c3+1; c4 < 5; c4++){ if(c4 == colors[c1])continue; ans3 += DP1[c1][c2]*DP2[c1][c3][c4]; ans3 += DP1[c1][c3]*DP2[c1][c2][c4]; ans3 += DP1[c1][c4]*DP2[c1][c2][c3]; for(int c5 = c4+1; c5 < 5; c5++){ if(c5 == colors[c1])continue; ans4 += DP2[c1][c2][c3]*DP2[c1][c4][c5]; ans4 += DP2[c1][c2][c4]*DP2[c1][c3][c5]; ans4 += DP2[c1][c2][c5]*DP2[c1][c3][c4]; ans4 += DP2[c1][c3][c4]*DP2[c1][c2][c5]; ans4 += DP2[c1][c3][c5]*DP2[c1][c2][c4]; ans4 += DP2[c1][c4][c5]*DP2[c1][c2][c3]; } } } } } cout << ans1+ans2+ans3+ans4 << "\n"; return 0; }

Compilation message (stderr)

paths.cpp: In function 'int main()':
paths.cpp:32:12: warning: unused variable 'c' [-Wunused-variable]
     ll a,b,c,e;
            ^
paths.cpp:32:14: warning: unused variable 'e' [-Wunused-variable]
     ll a,b,c,e;
              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...