Submission #244366

#TimeUsernameProblemLanguageResultExecution timeMemory
244366VimmerPick (COI18_pick)C++14
10 / 100
5 ms384 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("fast-math") //#pragma GCC optimize("no-stack-protector") #define F first #define S second #define sz(x) int(x.size()) #define pb push_back #define N 101001 #define M ll(998244353) #define inf 1e9 + 1e9 using namespace std; //using namespace __gnu_pbds; typedef long double ld; typedef long long ll; typedef short int si; typedef array <int, 3> a3; //typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; vector <pair <int, int> > vr; int main() { //freopen("input.txt", "r", stdin); //freopen("output4.txt", "w", stdout); ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); int a, b, c, d; cin >> a >> b >> c >> d; if (c + d == 0) { int x = 0, y = 0; cout << 0 << " " << 0 << endl; for (int i = 0; i < a / 2; i++) {x++; cout << x << " " << y << endl;} y++; cout << x << " " << y << endl; for (int i = 0; i < a / 2 - 1; i++) {x--; cout << x << " " << y << endl;} for (int i = 0; i < b / 2 - 1; i++) {y++; cout << x << " " << y << endl;} x--; cout << x << " " << y << endl; for (int i = 0; i < b / 2 - 1; i++) {y--; cout << x << " " << y << endl;} exit(0); } else if (a + b == 0) { cout << 0 << " " << 0 << endl; int x = 0, y = 0; for (int i = 0; i < c / 2; i++) { x++; y++; cout << x << " " << y << endl; } x--; y++; cout << x << " " << y << endl; for (int i = 0; i < c / 2 - 1; i++) { x--; y--; cout << x << " " << y << endl; } for (int i = 0; i < d / 2 - 1; i++) { x--; y++; cout << x << " " << y << endl; } x--; y--; cout << x << " " << y << endl; for (int i = 1; i < d / 2; i++) { x++; y--; cout << x << " " << y << endl; } exit(0); } else { if (a == 0) swap(a, b); if (c == 0) swap(c, d); if (c != 0 && d != 0 && c%2 == 0) swap(c, d); int x = 0, y = 0; vr.pb({x, y}); if (a % 2 == 0 && b % 2 == 0 && c % 2 == 0 && d % 2 == 0) { for (int i = 0; i < a / 2; i++) {x++; vr.pb({x, y}); } for (int i = 0; i < b / 2; i++) {y++; vr.pb({x, y});} for (int i = 0; i < c / 2 - 1; i++) { x++; y++; vr.pb({x, y});} for (int i = 0; i < d / 2; i++) {x--; y++; vr.pb({x, y});} x--; vr.pb({x, y}); for (int i = 0; i < d / 2; i++){x++; y--; vr.pb({x, y}); } for (int i = 0; i < c / 2 - 1; i++) {vr.pb({x, y}); x--; y--;} for (int i = 0; i < b / 2; i++) {vr.pb({x, y}); y--;} for (int i = 0; i < a / 2 - 1; i++) {vr.pb({x, y}); x--;} x--; y--; vr.pb({x, y}); } else if (a % 2 == 0 && b % 2 == 0 && c % 2 == 1 && d % 2 == 1) { for (int i = 0; i < (a - 2) / 2; i++) {x++; vr.pb({x, y}); } x++; y++; vr.pb({x, y}); for (int i = 0; i < b / 2; i++) {y++; vr.pb({x, y});} for (int i = 0; i < (c - 1) / 2; i++) { x++; y++; vr.pb({x, y});} for (int i = 0; i < (d - 1) / 2; i++) {vr.pb({x, y}); x--; y++;} vr.pb({x, y}); x--; for (int i = 0; i < (d - 1) / 2; i++){x++; y--; vr.pb({x, y}); } for (int i = 0; i < (c - 1) / 2; i++) {x--; y--; vr.pb({x, y});} for (int i = 0; i < b / 2; i++) {y--; vr.pb({x, y});} for (int i = 0; i < (a - 2) / 2; i++) {x--; vr.pb({x, y});} x--; vr.pb({x, y}); x++; y--; vr.pb({x, y}); } else if (a % 2 == 1 && b % 2 == 1 && c % 2 == 1 && d % 2 == 0) { for (int i = 0; i < (a - 1) / 2; i++) {x++; vr.pb({x, y}); } x++; y++; vr.pb({x, y}); for (int i = 0; i < (b - 1) / 2; i++) {y++; vr.pb({x, y});} for (int i = 0; i < (c - 1) / 2; i++) { x++; y++; vr.pb({x, y});} for (int i = 0; i < d / 2; i++) {x--; y++; vr.pb({x, y});} x--; vr.pb({x, y}); for (int i = 0; i < d / 2; i++){x++; y--; vr.pb({x, y}); } for (int i = 0; i < (c - 1) / 2; i++) {x--; y--; vr.pb({x, y});} for (int i = 0; i < (b - 1) / 2; i++) {y--; vr.pb({x, y});} for (int i = 0; i < (a - 1) / 2; i++) {x--; vr.pb({x, y});} y--; vr.pb({x, y}); } } if (a == 0) for (auto it : vr) swap(it.F, it.S); if (c == 0) for (auto it : vr) it.S = -it.S; if (c != 0 && d != 0 && c%2 == 0) for (auto it : vr) it.S = -it.S; for (auto it : vr) cout << it.F << " " << it.S << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...