結果
問題 | No.5009 Draw A Convex Polygon |
ユーザー | chro_96 |
提出日時 | 2022-12-02 00:52:16 |
言語 | C (gcc 12.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,074 bytes |
コンパイル時間 | 486 ms |
実行使用メモリ | 22,620 KB |
スコア | 0 |
平均クエリ数 | 438137.00 |
最終ジャッジ日時 | 2022-12-02 00:52:19 |
合計ジャッジ時間 | 2,536 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge15 |
(要ログイン)
ソースコード
#include <stdio.h> int main () { int n = 0; int m = 0; int max = 0; int x = 1000000000; int y = 0; for (int i = 1; i < 1000000000/i; i++) { long long idx[2] = { 0LL, 1000001LL }; long long used = ((long long)i)*((long long)(i+2)); while (idx[1] - idx[0] > 1LL) { long long nxt = (idx[0]+idx[1])/2LL; if ((nxt*(nxt+3LL))/2LL-5LL <= 1000000000LL-used) { idx[0] = nxt; } else { idx[1] = nxt; } } if (i+((int)idx[0]) > max) { n = i; m = (int)(idx[0]); max = n+m; } } printf("%d\n", (n+m-2)*8); for (int i = m; i > 2; i--) { x -= 1; y += i; printf("%d %d\n", x, y); } for (int i = 1; i <= n; i++) { x -= i; y += i+1; printf("%d %d\n", x, y); } for (int i = n; i > 0; i--) { x -= i+1; y += i; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x -= i; y += 1; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x -= i; y -= 1; printf("%d %d\n", x, y); } for (int i = 1; i <= n; i++) { x -= i+1; y -= i; printf("%d %d\n", x, y); } for (int i = n; i > 0; i--) { x -= i; y -= i+1; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x -= 1; y -= i; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x += 1; y -= i; printf("%d %d\n", x, y); } for (int i = 1; i <= n; i++) { x += i; y -= i+1; printf("%d %d\n", x, y); } for (int i = n; i > 0; i--) { x += i+1; y -= i; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x += i; y -= 1; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x += i; y += 1; printf("%d %d\n", x, y); } for (int i = 1; i <= n; i++) { x += i+1; y += i; printf("%d %d\n", x, y); } for (int i = n; i > 0; i--) { x += i; y += i+1; printf("%d %d\n", x, y); } for (int i = m; i > 2; i--) { x += 1; y += i; printf("%d %d\n", x, y); } return 0; }