#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; } |
English