Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define FASTER() ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
- #define ff first
- #define ss second
- #define pb push_back
- #define all(a) a.begin(), a.end()
- #define dbg(x) cerr<<" "<<#x<<" "<<x<<endl
- typedef long long ll;
- using namespace std;
- int n, m, r, q;
- struct point {
- int y, x;
- };
- istream &operator >> (istream &in, point &p) {
- in >> p.y >> p.x;
- return in;
- }
- int get(int y, int x) {
- return (y - 1) * m + x;
- }
- void print(vector <pair <point, point>> ans) {
- // cout << ans.size() << "\n";
- for(auto a : ans) {
- cout << a.ff.y << " " << a.ff.x << " " << a.ss.y << " " << a.ss.x << endl;
- }
- }
- void fileIO() {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- }
- void solve() {
- cin >> n >> m >> r >> q;
- vector <pair <point, point>> ways(q);
- for(int i = 0; i < q; i++) {
- cin >> ways[i].ff >> ways[i].ss;
- }
- vector <pair <point, point>> ans(r);
- set <pair <int, int>> st;
- int id = 0;
- for(int k = 0; k < r; k++) {
- int i = ways[k].ff.y, j = ways[k].ff.x;
- int dif;
- if(i < ways[k].ss.y) {
- dif = 1;
- } else {
- dif = -1;
- }
- while(i != ways[k].ss.y) {
- if(id >= r) break;
- pair <int, int> temp1 = {get(i, j), get(i + 1, j)};
- if(st.find(temp1) == st.end()) {
- ans[id] = {{i, j}, {i + 1, j}};
- st.insert(temp1);
- id++;
- }
- i += dif;
- }
- if(j < ways[k].ss.x) {
- dif = 1;
- } else {
- dif = -1;
- }
- while(j != ways[k].ss.x) {
- if(id >= r) break;
- pair <int, int> temp1 = {get(i, j), get(i + 1, j)};
- if(st.find(temp1) == st.end()) {
- ans[id] = {{i, j}, {i, j + 1}};
- st.insert(temp1);
- id++;
- }
- j += dif;
- }
- }
- if(ans.size() < r) {
- for(int i = 1; i <= n; i++) {
- if(id == r) break;
- for(int j = 1; j <= m; j++) {
- if(id == r) break;
- pair <int, int> temp1 = {get(i, j), get(i + 1, j)};
- if(st.find(temp1) == st.end()) {
- ans[id] = {{i, j}, {i, j + 1}};
- st.insert(temp1);
- id++;
- }
- }
- }
- }
- print(ans);
- }
- int main() {
- FASTER();
- fileIO();
- int t;
- cin >> t;
- while(t--) {
- solve();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment