Submission #1087982

#TimeUsernameProblemLanguageResultExecution timeMemory
1087982Has2008Izbori (COCI17_izbori)C++17
68 / 80
26 ms348 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define endl endl const int mod = 1e9 + 7; const int maxn = 105; int n, m, k, arr[maxn][20], ans = INT_MAX; vector < int > v; int the_winner() { bool out[20] = { }; for(auto i : v) out[i] = 1; int frq[20] = { }, winner = -1, mx = -1; for(int i = 0; i < n; i++) { int j; for(j = 0; j < m; j++) if(!out[arr[i][j]]) break; if(j == m) continue; frq[arr[i][j]]++; if(frq[arr[i][j]] > mx) winner = arr[i][j], mx = frq[arr[i][j]]; } return winner; } void rec(int i, int cnt) { if(i == m) { if(the_winner() == k) ans = min(ans, cnt); return; } v.push_back(i + 1); rec(i + 1, cnt + 1); v.pop_back(); rec(i + 1, cnt); } void solve() { cin >> n >> m >> k; int frq[m + 5] = { }; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { cin >> arr[i][j]; if(j == 0) frq[arr[i][j]] ++; } } int mx = -1, winner = -1; for(int i = 1; i <= m; i++) if(frq[i] > mx) mx = frq[i], winner = i; cout << winner << endl; rec(0, 0); cout << ans << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int tt = 1; //cin >> tt; while(tt--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...