結果
問題 | No.5009 Draw A Convex Polygon |
ユーザー |
|
提出日時 | 2022-12-03 23:59:22 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,377 bytes |
コンパイル時間 | 813 ms |
実行使用メモリ | 22,856 KB |
スコア | 0 |
平均クエリ数 | 1000001.00 |
最終ジャッジ日時 | 2022-12-03 23:59:27 |
合計ジャッジ時間 | 4,438 ms |
ジャッジサーバーID (参考情報) |
judge16 / judge15 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 1 |
ソースコード
#include <algorithm>#include <iostream>#include <vector>constexpr int sgn_x[4] = { +1, -1, -1, +1 };constexpr int sgn_y[4] = { +1, +1, -1, -1 };constexpr std::size_t N = 1000000;constexpr int M = 641;int main() {std::vector<std::pair<long long, long long>> ds;auto dfs = [&](auto dfs, int ld, int ln, int rd, int rn) -> void {int md = ld + rd;int mn = ln + rn;if (md <= M) {ds.emplace_back(md, mn);if (ds.size() == N / 8) return;dfs(dfs, ld, ln, md, mn);if (ds.size() == N / 8) return;dfs(dfs, md, mn, rd, rn);}};dfs(dfs, 1, 0, 1, 1);std::sort(ds.begin(),ds.end(),[&](const std::pair<long long, long long>& p, const std::pair<long long, long long>& q) {auto [pd, pn] = p;auto [qd, qn] = q;return pn * qd < qn* pd;});std::cout << 8 * ds.size() << '\n';long long cx = 0, cy = 0;for (int i = 0; i < 4; ++i) {for (int j = 0; j < 2; ++j) {for (auto& [x, y] : ds) {std::cout << cx << ' ' << cy << '\n';cx += sgn_x[i] * x, cy += sgn_y[i] * y;std::swap(x, y);}std::reverse(ds.begin(), ds.end());}}std::cout.flush();return 0;}