Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <set>
- #include <cmath>
- #include <map>
- #include <utility>
- #include <fstream>
- #include <bitset>
- typedef long long int ll;
- #define all(x) (x).begin(),(x).end()
- #define endl "\n";
- long double pi = 3.14159265358979;
- using namespace std;
- int inf = 1e9;
- ll MOD = 998244353;
- void fastIO() {
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- }
- void solve() {
- int n;
- cin >> n;
- set <int> s;
- vector <bool> used(n, false);
- for (int i = 1; i <= n; i++) s.insert(i);
- for (int i = 0; i < n; i++) {
- int c;
- cin >> c;
- bool f = false;
- for (int j = 0; j < c; j++) {
- int k;
- cin >> k;
- if (!f && s.find(k) != s.end()) {
- s.erase(k);
- f = true;
- used[i] = true;
- }
- }
- }
- if (s.size() == 0) {
- cout << "OPTIMAL\n";
- return;
- }
- for (int i = 0; i < n; i++)
- if (!used[i]) {
- int k = *s.begin();
- cout << "IMPROVE\n" << i + 1 << " " << k << endl;
- return;
- }
- }
- int main() {
- fastIO();
- int t;
- cin >> t;
- for (int i = 0; i < t; i++)
- solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement