| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1089181 | em4ma2 | Izbori (COCI17_izbori) | C++14 | 28 ms | 476 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//                          بسم الله الرحمن الرحيم
#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define int long long
#define pb push_back
#define endl '\n'
#define ld long double
#define applejuice ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
const ll mod=1e9+7;
const ll inf=1e18;
const ll mxsz=100+4;
const ld pi=acos(-1.0);
int win[mxsz];//m
vector<int>need;
int a[mxsz][19];
signed main() {
    applejuice;
    int n,m,k;
    cin>>n>>m>>k;
    for (int i=0;i<n;i++){
        for (int j=0;j<m;j++){
            cin>>a[i][j];
            if(j==0)win[a[i][0]]++;
        }
    }
    /*for(int i=0;i<need.size();i++){
        cout<<need[i]<<" ";
    }cout<<endl;*/
    /*for (int i=0;i<=m;i++){
        cout<<win[i]<<" ";
    }cout<<endl;*/
    int mxn=-1,mxi=0;
    for (int i=0;i<=m;i++){
        if (win[i]>mxn){
            mxn=win[i];
            mxi=i;
        }
    }
    //cout<<mxi<<" "<<mxn<<endl;
    cout<<mxi<<endl;
    //everything good so far
    int ans=m;
    for (int ma=1;ma<(1<<m);ma++){
        bool rev[m+1]={};
        int cnt=0;
        for (int i=0;i<m;i++){
            if((1<<i)&ma){
                rev[i+1]=1;
            }else{
                cnt++;
            }
        }
        /*for (int i=0;i<=m;i++){
            cout<<rev[i]<<" ";
        }
        cout<<endl;*/
        int cur=m,mx=-1;
        vector<int>t;
        for (int i=0;i<n;i++){
            for (int j=0;j<m;j++){
                if(rev[a[i][j]]){
                    t.pb(a[i][j]);
                    break;
                }
            }
        }
        int wn[m+1]={};
        for (auto x:t)wn[x]++;
        for (int i=0;i<=m;i++){
            mx=max(mx,wn[i]);
        }
        for (int i=0;i<=m;i++){
            if(wn[i]==mx){
                cur=i;
                break;
            }
        }
        if(cur==k){
            ans=min(cnt,ans);
            //cout<<"jlefi"<<endl;
        }
    }
    cout<<ans<<endl;
    /*if(mxi==k){
        cout<<0;
        return 0;
    }
    int ans=0,ned;
    if (mxi<k){
        ned=(mxn+1)/2;
        //cout<<ned<<endl;
        sort(need.begin(),need.end());
        //cout<<need[0]<<endl;
        for (int i=0;i<ned;i++){
            ans+=need[i];
        }
    }else{
        ned=mxn/2;
        //cout<<ned<<endl;
        sort(need.begin(),need.end());
        for (int i=0;i<ned;i++){
            ans+=need[i];
        }
    }
    cout<<ans<<endl;*/
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
