#include <bits/stdc++.h> using namespace std; int tab[1005]; int main() { int t; cin >> t; for(int tt=0;tt<t;tt++) { int n,m,k,a,b; cin >> n >> m >> k; for(int i=0;i<=n;i++) { tab[i] = m; } int minimumTestow = 100000000; for(int i=0;i<m;i++) { cin >> a >> b; tab[a]--; tab[b]--; minimumTestow = min(minimumTestow, min(tab[a], tab[b])); } int minZaklec = 1; int minZaklecCzarownika = 0; int maxZaklecCzarownika = 0; bool poszedl = false; for(int day=1;day<=k;day++) { int minimum = max(minZaklec, maxZaklecCzarownika); if(minimumTestow < minimum) { int nr = 0; for(int i=1;i<=n;i++) { if(tab[i] < minimum) { nr++; } } cout << day << " " << nr << "\n"; for(int i=1;i<=n;i++) { if(tab[i] < minimum) { cout << i << " "; } } cout << "\n"; poszedl = true; break; } minZaklecCzarownika = minZaklec; maxZaklecCzarownika = minZaklecCzarownika; int suma = minZaklecCzarownika * n; minZaklec = suma / (n-2); int mod = suma % (n-2); if(mod > 0) { minZaklec++; maxZaklecCzarownika++; } } if(!poszedl) { cout << "-1\n"; } } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <bits/stdc++.h> using namespace std; int tab[1005]; int main() { int t; cin >> t; for(int tt=0;tt<t;tt++) { int n,m,k,a,b; cin >> n >> m >> k; for(int i=0;i<=n;i++) { tab[i] = m; } int minimumTestow = 100000000; for(int i=0;i<m;i++) { cin >> a >> b; tab[a]--; tab[b]--; minimumTestow = min(minimumTestow, min(tab[a], tab[b])); } int minZaklec = 1; int minZaklecCzarownika = 0; int maxZaklecCzarownika = 0; bool poszedl = false; for(int day=1;day<=k;day++) { int minimum = max(minZaklec, maxZaklecCzarownika); if(minimumTestow < minimum) { int nr = 0; for(int i=1;i<=n;i++) { if(tab[i] < minimum) { nr++; } } cout << day << " " << nr << "\n"; for(int i=1;i<=n;i++) { if(tab[i] < minimum) { cout << i << " "; } } cout << "\n"; poszedl = true; break; } minZaklecCzarownika = minZaklec; maxZaklecCzarownika = minZaklecCzarownika; int suma = minZaklecCzarownika * n; minZaklec = suma / (n-2); int mod = suma % (n-2); if(mod > 0) { minZaklec++; maxZaklecCzarownika++; } } if(!poszedl) { cout << "-1\n"; } } return 0; } |