結果

問題 No.5009 Draw A Convex Polygon
ユーザー chro_96chro_96
提出日時 2022-12-02 00:33:52
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 291 ms / 2,600 ms
コード長 1,091 bytes
コンパイル時間 108 ms
実行使用メモリ 22,552 KB
スコア 357,744
平均クエリ数 357745.00
最終ジャッジ日時 2022-12-02 00:33:54
合計ジャッジ時間 1,607 ms
ジャッジサーバーID
(参考情報)
judge14 / judge13
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 291 ms
22,552 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>

int main () {
  int n[2] = { 0, 1000001 };
  
  int x = 1000000000;
  int y = 0;
  
  while (n[1] - n[0] > 1) {
    long long nxt = (long long) ((n[0]+n[1])/2);
    if ((nxt*(nxt+3LL))/2LL-2LL <= 1000000000LL) {
      n[0] = (int) nxt;
    } else {
      n[1] = (int) nxt;
    }
  }
  
  printf("%d\n", n[0]*8-8);
  for (int i = n[0]; i > 1; i--) {
    x -= 1;
    y += i;
    printf("%d %d\n", x, y);
  }
  for (int i = 2; i <= n[0]; i++) {
    x -= i;
    y += 1;
    printf("%d %d\n", x, y);
  }
  for (int i = n[0]; i > 1; i--) {
    x -= i;
    y -= 1;
    printf("%d %d\n", x, y);
  }
  for (int i = 2; i <= n[0]; i++) {
    x -= 1;
    y -= i;
    printf("%d %d\n", x, y);
  }
  for (int i = n[0]; i > 1; i--) {
    x += 1;
    y -= i;
    printf("%d %d\n", x, y);
  }
  for (int i = 2; i <= n[0]; i++) {
    x += i;
    y -= 1;
    printf("%d %d\n", x, y);
  }
  for (int i = n[0]; i > 1; i--) {
    x += i;
    y += 1;
    printf("%d %d\n", x, y);
  }
  for (int i = 2; i <= n[0]; i++) {
    x += 1;
    y += i;
    printf("%d %d\n", x, y);
  }
  
  return 0;
}
0