Submission #198595

#TimeUsernameProblemLanguageResultExecution timeMemory
198595ZwariowanyMarcinIzbori (COCI17_izbori)C++14
70 / 80
22 ms376 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define ss(x) (int) x.size() #define pb push_back #define LL long long #define ld long double #define cat(x) cerr << #x << " = " << x << endl #define FOR(i, j, n) for(int i = j; i <= n; ++i) #define boost cin.tie(0), ios_base::sync_with_stdio(0); using namespace std; const int nax = 110; int n, m, k; int a[nax][nax]; int points[nax]; int alive[nax]; int main() { scanf ("%d%d%d", &n, &m, &k); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) scanf ("%d", &a[i][j]); points[a[i][1]]++; } pair <int, int> winner = {-1, 0}; for (int i = 1; i <= n; ++i) winner = max(winner, {points[i], -i}); printf ("%d\n", -1 * winner.se); int ans = m - 1; for (int mask = 0; mask < (1 << m) - 1; ++mask) { if ((mask >> k) & 1) continue; for (int i = 0; i < m; ++i) { alive[i + 1] = !((mask >> i) & 1); points[i + 1] = 0; } for (int i = 1; i <= n; ++i) { int j = 1; while (!alive[a[i][j]]) j++; points[a[i][j]]++; } pair <int, int> winner = {-1, 0}; for (int k = 1; k <= m; ++k) winner = max(winner, {points[k], -k}); if (winner.se == -k) ans = min(ans, __builtin_popcount(mask)); } printf ("%d", ans); return 0; }

Compilation message (stderr)

izbori.cpp: In function 'int main()':
izbori.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf ("%d%d%d", &n, &m, &k);
  ~~~~~~^~~~~~~~~~~~~~~~~~~~~~
izbori.cpp:28:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf ("%d", &a[i][j]);
    ~~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...