Submission #475393

#TimeUsernameProblemLanguageResultExecution timeMemory
475393Ahmed57Izbori (COCI17_izbori)C++14
76 / 80
139 ms204 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
    int n,m,k;
    cin>>n>>m>>k;
    int arr[n][m];
    for(int i = 0;i<n;i++)for(int j = 0;j<m;j++)cin>>arr[i][j];
    for(int i=0;i<m;i++){
        map<int,int>mp;
        for(int j = 0;j<n;j++){
            mp[arr[j][i]]++;
        }
        if(i==0){
        long long ans = 0;
        int ma=0;
        for(auto j:mp){
            ma = max(ma,j.second);
        }
        for(auto j:mp){
            if(j.second==ma){
                ans=j.first;
                break;
            }
        }
        cout<<ans<<endl;
        }
    }
    int ans2=m;
    for(int mm=1;mm<(1<<m);mm++){
        int s[m+1]={0};
        int c=0;
        for(int i=0;i<m;i++){
            int a=(1<<i)&mm;
            if(a)s[i+1]=1;
            else c++;
        }
        int w=m;
        int ma=0;
        vector<int>temp;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(s[arr[i][j]]) {
                    temp.push_back(arr[i][j]);
                    break;
                }
            }
        }
        map<int,int>f;
        for(auto i:temp){
            f[i]++;
        }
        for(int i=1;i<=m;i++){
            ma = max(ma,f[temp[i]]);
        }
        for(int i=1;i<=m;i++){
            if(f[i]==ma){
                w=i;
                break;
            }
        }
        if(w==k){
            ans2=min(ans2,c);
        }
    }
    cout<<ans2<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...