Submission #475381

#TimeUsernameProblemLanguageResultExecution timeMemory
475381HossamHero7Izbori (COCI17_izbori)C++14
80 / 80
62 ms324 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define endl '\n' void solve(){ int n,m,k; cin>>n>>m>>k; vector <vector<int>> v(n,vector<int>(m)); for(int i=0;i<n;i++){ for(int j=0;j<m;j++) cin>>v[i][j]; } for(int i=0;i<m;i++){ map <int,int> mp; for(int j=0;j<n;j++){ int x = v[j][i]; mp[x] ++; } if(i == 0){ ll ans = 0; int mx = 0; for(auto j : mp){ mx = max(mx,j.second); } for(auto j:mp){ if(j.second == mx){ ans = j.first; break; } } cout<<ans<<endl; } } int ans2=m; for(int mask=1;mask<(1<<m);mask++){ vector <int> vis(m+1); int cnt = 0; for(int i=0;i<m;i++){ int take = (1<<i)&mask; if(take) vis[i+1] = 1; else cnt ++; } int ans = m; int mx = 0; vector <int> temp; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(vis[v[i][j]]) { temp.push_back(v[i][j]); break; } } } vector <int> frq(m+1); for(auto i : temp) frq[i] ++; for(int i=1;i<=m;i++){ mx = max(mx,frq[i]); } for(int i=1;i<=m;i++){ if(frq[i] == mx){ ans = i; break; } } if(ans == k){ ans2 = min(ans2,cnt); } } cout<<ans2<<endl; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t=1; // cin>>t; while(t--){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...