Submission #1259735

#TimeUsernameProblemLanguageResultExecution timeMemory
1259735stanirinaColouring a rectangle (eJOI19_colouring)C++20
0 / 100
181 ms167936 KiB
#include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int INF=numeric_limits<int>::max(); int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int m,n; cin>>m>>n; vector<pair<int,int>> v; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int d1=i-j+n-1; int d2=i+j+(m+n-1); v.push_back({d1,d2}); } } //for(int i=0;i<v.size();i++)cout<<v[i].first+1<<' '<<v[i].second+1<<endl; vector<int> niz(2*(m+n-1)); for(int i=0;i<2*(n+m-1);i++)cin>>niz[i]; int ans=INF; for(int i=0;i<(1<<(2*(m+n-1)));i++){ int num=0; int sum=0ll; for(int j=2*(m+n-1)-1;j>=0;j--){ if(i & (1<<j)){num++;sum+=niz[j];} } if(num<m+n-1)continue; bool ok=true; for(int j=0;j<v.size();j++){ if(!((i&(1<<v[j].first))||(i&(1<<v[j].second)))){ ok=false; break; } } if(ok)ans=min(ans,sum); } cout<<ans<<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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...