Submission #519825

#TimeUsernameProblemLanguageResultExecution timeMemory
519825MonarchuwuScissors and Tape (CEOI19_scissors)C++17
0 / 100
1075 ms115504 KiB
#include<iostream> #include<algorithm> #include<vector> using namespace std; typedef long long ll; typedef pair<int, int> pii; #define ff first #define ss second const int N = 1000; int n, m; vector<pii> S, T; void scissors() { m = max(S[0].ff, S[2].ff); n = max(S[0].ss, S[2].ss); cout << "scissors\n"; cout << "0 " << n * m << '\n'; for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) { cout << "4 "; cout << i << ' ' << j << ' '; cout << i + 1 << ' ' << j << '\n'; cout << i + 1 << ' ' << j + 1 << ' '; cout << i << ' ' << j + 1 << ' '; } } void tape() { m = max(T[0].ff, T[2].ff); n = max(T[0].ss, T[2].ss); cout << "tape\n"; cout << m * n << ' '; for (int i = 1; i <= m * n; ++i) cout << i << ' '; cout << '\n'; for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) { cout << "4 "; cout << i << ' ' << j << ' '; cout << i + 1 << ' ' << j << '\n'; cout << i + 1 << ' ' << j + 1 << ' '; cout << i << ' ' << j + 1 << ' '; } cout << "4\n"; for (pii x : T) cout << x.ff << ' ' << x.ss << ' '; cout << '\n'; } namespace sub2 { int m1, n1, m2, n2; bool check() { m1 = max(S[0].ff, S[2].ff); n1 = max(S[0].ss, S[2].ss); if (m < n) return false; m2 = max(T[0].ff, T[2].ff); n2 = max(T[0].ss, T[2].ss); return m == n; } void solve() { cout << "scissors\n"; cout << "0 " << m1 / m2 << '\n'; for (int i = 0; i < m1; i += m2) { cout << "4 "; cout << i << ' ' << 0 << ' '; cout << i + m2 << ' ' << 0 << '\n'; cout << i + m2 << ' ' << n1 << ' '; cout << i << ' ' << n1 << ' '; } cout << "tape\n"; cout << m1 / m2 << ' '; for (int i = 1; i <= m1 / m2; ++i) cout << i << ' '; cout << '\n'; for (int j = 0; j < n2; j += n1) { cout << "4 "; cout << 0 << ' ' << j << ' '; cout << m2 << ' ' << j << '\n'; cout << m2 << ' ' << j + n1 << ' '; cout << 0 << ' ' << j + n1 << ' '; } cout << "4\n"; for (pii x : T) cout << x.ff << ' ' << x.ss << ' '; cout << '\n'; } } int main() { cin.tie(NULL)->sync_with_stdio(false); cin >> n; S.resize(n); for (pii &x : S) cin >> x.ff >> x.ss; cin >> m; T.resize(m); for (pii &x : T) cin >> x.ff >> x.ss; if (sub2::check()) sub2::solve(); else { scissors(); tape(); } } /** /\_/\ * (= ._.) * / >0 \>1 **/
#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...