제출 #1089034

#제출 시각아이디문제언어결과실행 시간메모리
1089034vjudge1Izbori (COCI17_izbori)C++17
4 / 80
49 ms428 KiB
/* https://oj.uz/problem/view/COCI17_izbori?locale=en: WA */ #include <stdio.h> #include <stdlib.h> #include <string.h> unsigned int popcnt(unsigned int x) { unsigned int out = 0; while (x) { ++out; x &= x - 1; } return out; } int main(void) { unsigned int N, M, K, i; unsigned int *priorities; unsigned int *scores; unsigned int best; (void) scanf("%u %u %u", &N, &M, &K); best = M - 1; priorities = (unsigned int *) calloc(N*M, sizeof(*priorities)); scores = (unsigned int *) calloc(M, sizeof(*scores)); for (i = 0; i < N*M; ++i) (void) scanf(" %u", &priorities[i]); for (i = 0; i < (1 << M)-1; ++i) { unsigned int j, k, l; memset(scores, 0, sizeof(*scores) * M); for (j = 0; j < N; ++j) { l = M; for (k = 0; k < M; ++k) if ((~i & (1<<k)) && (l == M || priorities[j*M+k] < priorities[j*M+l])) l = k; ++scores[l]; } k = 0; for (j = 1; j < M; ++j) if (scores[j] > scores[k]) k = j; if (i == 0) printf("%u\n", k + 1); if (k == K-1) best = popcnt(i); } printf("%u\n", best); return EXIT_SUCCESS; }

컴파일 시 표준 에러 (stderr) 메시지

izbori.cpp: In function 'int main()':
izbori.cpp:27:17: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
   27 |   for (i = 0; i < (1 << M)-1; ++i) {
      |               ~~^~~~~~~~~~~~
izbori.cpp:21:15: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |   (void) scanf("%u %u %u", &N, &M, &K);
      |          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
izbori.cpp:26:17: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |     (void) scanf(" %u", &priorities[i]);
      |            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...