Submission #1013553

#TimeUsernameProblemLanguageResultExecution timeMemory
1013553amine_arouaNetrpeljivost (COI23_netrpeljivost)C++17
10 / 100
1157 ms524288 KiB
#include<bits/stdc++.h> using namespace std; #define intt long long #define pb push_back int main() { int n ; cin>>n; vector<vector<int>> mat(n , vector<int>(n)); for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { cin>>mat[i][j]; } } vector<int> beg ; for(int i = 0 ; i < n; i++) beg.pb(i); vector<vector<int>> states; queue<vector<int>> q; q.push(beg); map<vector<int> , int> vis; while (!q.empty()) { auto cur = q.front(); q.pop(); if(vis[cur]) continue; states.pb(cur); vis[cur] = 1; for(int p = 1 ; p < n ; p*=2) { for(int i = 0 ; i * p < n ; i+=2) { vector<int> new_cur = cur; for(int j = i * p ; j < (i + 1) * p ; j++) swap(new_cur[j] , new_cur[j + p]); if(!vis[new_cur]) q.push(new_cur); } } } intt ans = LLONG_MAX; // for(auto state : states) // { // cout<<'\n'; // for(auto x : state) // cout<<x<<" "; // cout<<'\n'; // } for(auto state : states) { intt cur = 0; for(int i =0 ; i + 1 < n ; i++) { cur+= mat[state[i]][state[i + 1]]; } ans = min(ans , cur); } cout<<ans<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...