Submission #1075050

#TimeUsernameProblemLanguageResultExecution timeMemory
1075050matthewNorela (info1cup18_norela)C++17
100 / 100
342 ms596 KiB
#include <stdio.h> #include <vector> const int MAXM = 24; std::vector<int> v[MAXM]; int res; int popcount(int a) { int cnt = 0; while(a > 0) { cnt++; a &= a - 1; } return cnt; } void bkt(int pos, int m, int n, long long mask, int op) { if(pos >= m) { if(mask == (1LL << n) - 1 && popcount(op) <= popcount(res)) { res = op; } } else { int i; bkt(pos + 1, m, n, mask, op); op |= (1 << pos); for(i = 0; i < (int)v[pos].size(); i++) { mask ^= (1LL << (v[pos][i] - 1)); } bkt(pos + 1, m, n, mask, op); } } int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); #endif int n, m, i, x, j, a, cnt; scanf("%d%d", &n, &m); for(i = 0; i < m; i++) { scanf("%d", &x); for(j = 0; j < x; j++) { scanf("%d", &a); v[i].push_back(a); } } res = (1 << m) - 1; bkt(0, m, n, 0, 0); x = popcount(res); printf("%d\n", x); cnt = 0; for(i = 0; i < x; i++) { while(!(res & 1)) { res >>= 1; cnt++; } printf("%d ", cnt + 1); res >>= 1; cnt++; } printf("\n"); return 0; }

Compilation message (stderr)

norela.cpp: In function 'int main()':
norela.cpp:45:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |   scanf("%d%d", &n, &m);
      |   ~~~~~^~~~~~~~~~~~~~~~
norela.cpp:47:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |     scanf("%d", &x);
      |     ~~~~~^~~~~~~~~~
norela.cpp:49:12: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |       scanf("%d", &a);
      |       ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...