Anul acesta se organizează prima ediție a Olimpiadei Pluridisciplinare pentru Centrele de Excelență, PluriCEX. Fiecare Centru de Excelență din țară va trimite la concurs o echipă formată din k
membri (toți participanți la Centrul de Excelență). Echipa va trebui să rezolve probleme interdisciplinare, disciplinele vizate fiind cele de la Centrul de Excelenţă (D
discipline, pe care le vom considera numerotate de la 1
la D
).
Exemplu
pluricex1.in
6 3 5 1 2 2 1 4 3 2 4 3 1 5 2 3 1 1 3
pluricex1.out
2 3 4 3 4 5
#include <bits/stdc++.h> using namespace std; ifstream cin("pluricex1.in"); ofstream cout("pluricex1.out"); int n , p[10] , cnt , x[10] , m , d , M[25][25]; void sol() { int s[11] = {0}; for(int i = 1 ; i <= n ; i++) for(int j = 1 ; M[x[i]][j] != 0 ; j++) s[M[x[i]][j]] = 1; int ok = 1; for(int i = 1 ; i <= d ; i++) if(s[i] == 0) ok = 0; if(ok == 1) { for(int i = 1 ; i <= m ; i++) cout << x[i] << " "; cout << '\n'; } } void back(int k) { for(int i = x[k - 1] + 1; i <= n; ++i) { x[k] = i; if(k == m) sol(); else back(k + 1); } } int main() { cin >> n >> m >> d; for(int i = 1 ; i <= n ; i++) { int a; cin >> a; for(int j = 1 ; j <= a ; j++) cin >> M[i][j]; } back(1); return 0; }