Submission #1026724

#TimeUsernameProblemLanguageResultExecution timeMemory
1026724vjudge1Netrpeljivost (COI23_netrpeljivost)C++17
10 / 100
1606 ms122448 KiB
#include <bits/stdc++.h> using namespace std; typedef long long lo; #define fi first #define se second #define endl "\n" #define pb push_back #define int long long #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(int i=1;i<=n;i++) #define mid ((start+end)/2) #define ort ((bas+son)/2) #define _ << " " << const lo inf = 1000000000000000000; const lo li = 2050; const lo mod = 1000000007; int n,m,a[li][li],k,flag,t,p[li],l[li],r[li]; int cev; string s; vector<int> v; map<pair<int,int>,int> dp; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); inline int dfs(int node,int start,int end,int mask){ if(start+1==end){return a[start][end];} int cevv=inf; if(dp.find({node,mask})!=dp.end())return dp[{node,mask}]; for(int i=start;i<=mid;i++){ if(mask&(1<<i))continue; for(int j=mid+1;j<=end;j++){ if(mask&(1<<j))continue; cevv=min(cevv,dfs(node*2,start,mid,mask|(1<<i))+dfs(node*2+1,mid+1,end,mask|(1<<j))+a[i][j]); } } return dp[{node,mask}]=cevv; } int32_t main(void){ fio(); cin>>n; FOR{ for(int j=1;j<=n;j++)cin>>a[i][j]; } cout<<dfs(1,1,n,0)<<endl; //~ cout<<cev<<endl; 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...