Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int mex(vi &v)
- {
- int m = 0;
- set<int> st;
- f(i, 0, v.size())
- {
- st.insert(v[i]);
- }
- for (auto i : st)
- {
- if (i == m)
- {
- m++;
- }
- else
- {
- break;
- }
- }
- return m;
- }
- void solve()
- {
- int n, m;
- cin >> n >> m;
- vi v(m);
- f(i, 1, m)
- {
- v[i] = m - i;
- }
- rotate(v.begin(), v.begin() + m - 1, v.end());
- debug(v);
- vector<vi> ans;
- f(i, 0, n)
- {
- // print(v);
- ans.pb(v);
- rotate(v.begin(), v.begin() + m - 1, v.end());
- if (v[0] == 0)
- rotate(v.begin(), v.begin() + m - 1, v.end());
- }
- debug(ans);
- vi anss;
- // println(mex(auxx));
- f(i, 0, m)
- {
- vi aux;
- f(j, 0, n)
- {
- aux.pb(ans[j][i]);
- }
- debug(aux);
- anss.pb(mex(aux));
- }
- debug(anss);
- println(mex(anss));
- f(i, 0, n)
- {
- f(j, 0, m)
- {
- print(ans[i][j]);
- }
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment