제출 #503502

#제출 시각아이디문제언어결과실행 시간메모리
503502brayden04Labels (NOI20_labels)C++14
0 / 100
1028 ms6328 KiB
#include <bits/stdc++.h>
#define endl '\n'
#define int long long

using namespace std;

int N = 0;
vector<int> D;

bool visited[1000005];

bool dp(int A1, int Di){
  if (visited[A1] == true) return false;

  visited[A1] = true;
  if (Di == N-1){
    return true;
  }

  int A2 = A1 + D[Di];
  if (A2 < 0 || A2 > N) return false;
  return dp(A2, Di+1);
}

signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);

  memset(visited, false, sizeof(visited));

  cin >> N;
  for (int i = 0; i < N-1; i++){
    int temp = 0;
    cin >> temp;
    D.push_back(temp);
  }

  for (int i = 1; i < N; i++){
    memset(visited, false, sizeof(visited));
    bool test = dp(i, 0);
    int A = i;
    if (test == false){
      continue;
    }
    else{
      for (int i = 0; i < N-1; i++){
        cout << A << " ";
        A += D[i];
      }
      cout << A << endl;
      return 0;
    }
  }

  cout << "-1" << endl;

  /*
  if (D[0] == 1){
    cout << "1 2" << endl;
  }
  else if (D[0] == -1){
    cout << "2 1" << endl;
  }
  else{
    cout << "-1" << endl;
  }
  */
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...