Submission #56424496


Source Code Expand

#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;
  }
}

Submission Info

Submission Time
Task chinese - 中華料理
User kumjin3141
Language C++ 20 (gcc 12.2)
Score 100
Code Size 1075 Byte
Status AC
Exec Time 129 ms
Memory 4204 KiB

Judge Result

Set Name Set01 Set02 Set03 Set04 Set05 Set06 Set07 Set08 Set09 Set10
Score / Max Score 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10 10 / 10
Status
AC × 5
AC × 3
AC × 3
AC × 3
AC × 3
AC × 2
AC × 2
AC × 2
AC × 2
AC × 2
Set Name Test Cases
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
Case Name Status Exec Time Memory
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