提出 #56424496


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
int main () {
  int N;
  cin >> N;
  vector<int> A;
  for (int i = 2; i <= N; i ++) {
    int a;
    cin >> a;
    A.push_back((N - i + a) % N);
  }
  sort(A.begin(), A.end());
  A.erase(unique(A.begin(), A.end()), A.end());
  int K = A.size();
  for (int i = 0; i < K * 2; i ++) {
    A.push_back(A[i] + N);
  }
  vector<int> ans(N, N);
  for (int i = 0; i < N; i ++) {
    int id = i + N;
    auto p1 = upper_bound(A.begin(), A.end(), id);
    auto pt = lower_bound(A.begin(), A.end(), id);
    auto p2 = prev(pt);
    int d = max(abs(id - *p1), abs(id - *p2));
    ans[i] = N - d;
  }
  /*
  for (int i = 0; i < N; i ++) {
    cout << ans[i] << " ";
  }
  cout << endl;
  */
  for (int i = 1; i < N * 5; i ++) {
    int p = i % N, q = (i - 1) % N;
    ans[p] = min(ans[p], ans[q] + 1);
  }
  for (int i = N * 5; i; i --) {
    int p = i % N, q = (i + 1) % N;
    ans[p] = min(ans[p], ans[q] + 1);
  }
  for (int i = 0; i < N; i ++) {
    cout << ans[i] + min(i, N - i) << endl;
  }
}

提出情報

提出日時
問題 chinese - 中華料理
ユーザ kumjin3141
言語 C++ 20 (gcc 12.2)
得点 100
コード長 1075 Byte
結果 AC
実行時間 129 ms
メモリ 4204 KiB

ジャッジ結果

セット名 Set01 Set02 Set03 Set04 Set05 Set06 Set07 Set08 Set09 Set10
得点 / 配点 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10
結果
AC × 5
AC × 3
AC × 3
AC × 3
AC × 3
AC × 2
AC × 2
AC × 2
AC × 2
AC × 2
セット名 テストケース
Set01 01-01, 01-02, 01-03, 01-04, 01-05
Set02 02-01, 02-02, 02-03
Set03 03-01, 03-02, 03-03
Set04 04-01, 04-02, 04-03
Set05 05-01, 05-02, 05-03
Set06 06-01, 06-02
Set07 07-01, 07-02
Set08 08-01, 08-02
Set09 09-01, 09-02
Set10 10-01, 10-02
ケース名 結果 実行時間 メモリ
01-01 AC 1 ms 3656 KiB
01-02 AC 1 ms 3500 KiB
01-03 AC 1 ms 3484 KiB
01-04 AC 1 ms 3476 KiB
01-05 AC 1 ms 3540 KiB
02-01 AC 2 ms 3492 KiB
02-02 AC 2 ms 3504 KiB
02-03 AC 2 ms 3524 KiB
03-01 AC 2 ms 3516 KiB
03-02 AC 2 ms 3592 KiB
03-03 AC 2 ms 3676 KiB
04-01 AC 2 ms 3460 KiB
04-02 AC 2 ms 3552 KiB
04-03 AC 2 ms 3460 KiB
05-01 AC 118 ms 3936 KiB
05-02 AC 114 ms 3820 KiB
05-03 AC 129 ms 4112 KiB
06-01 AC 121 ms 4064 KiB
06-02 AC 128 ms 4124 KiB
07-01 AC 121 ms 3856 KiB
07-02 AC 129 ms 4112 KiB
08-01 AC 118 ms 4052 KiB
08-02 AC 129 ms 4120 KiB
09-01 AC 121 ms 3936 KiB
09-02 AC 128 ms 4100 KiB
10-01 AC 122 ms 3968 KiB
10-02 AC 128 ms 4204 KiB