제출 #44572

#제출 시각아이디문제언어결과실행 시간메모리
44572heonIzbori (COCI17_izbori)C++11
60 / 80
2756 ms65536 KiB
#include<bits/stdc++.h> using namespace std; int n,m,k; int grid[105][15]; int winner(){ int winner[20]; memset(winner,0,sizeof(winner)); for(int i = 0; i < n; i++){ winner[grid[i][0]]++; } int win,winval = 0; for(int i = 1; i <= m; i++){ if(winner[i] > winval){ winval = winner[i]; win = i; } } return win; } int currwin(int mask){ int winner[20]; memset(winner,0,sizeof(winner)); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(mask & (1 << (grid[i][j]-1))) continue; winner[grid[i][j]]++; break; } } int winval = 0, win; for(int i = 1; i <= m; i++){ if(winner[i] > winval){ winval = winner[i]; win = i; } } return win; } int main(){ cin >> n >> m >> k; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cin >> grid[i][j]; } } int currentwinner = winner(); int izbaceni = 0; int fullmask = 1 << m; queue <pair<int,int>> q; q.push(make_pair(fullmask + (1 << (currentwinner-1)),1)); if(currentwinner == k) goto kr; while(!q.empty()){ auto node = q.front(); q.pop(); int currmask = node.first; if(currwin(currmask) == k){ izbaceni = node.second; break; } for(int i = 0; i < m; i++){ if(i+1 != k && !(currmask & (1 << i))){ q.push(make_pair((currmask + (1 << i)),node.second+1)); } } } kr:; cout << currentwinner << endl << izbaceni; }

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

izbori.cpp: In function 'int winner()':
izbori.cpp:21:9: warning: 'win' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return win;
         ^~~
izbori.cpp: In function 'int currwin(int)':
izbori.cpp:41:9: warning: 'win' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return win;
         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...