제출 #417821

#제출 시각아이디문제언어결과실행 시간메모리
417821Hegdahl장난감 기차 (IOI17_train)C++17
5 / 100
9 ms1356 KiB
#include <bits/stdc++.h>
#include "train.h"

using namespace std;

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
  const int n = (int)a.size();
  const int m = (int)u.size();

  bool case1 = true;
  for (int i = 0; i < m; ++i)
    if (u[i] != v[i] && u[i]+1 != v[i])
      case1 = false;

  if (case1) {
    vector<bool> can_nxt(n), can_self(n);
    for (int i = 0; i < m; ++i) {
      if (u[i] == v[i]) can_self[u[i]] = true;
      if (u[i]+1 == v[i]) can_nxt[u[i]] = true;
    }

    vector<int> inf_charge(n);
    for (int i = n-1; i >= 0; --i) {
      if (!can_nxt[i]) inf_charge[i] = r[i];
      else if (!can_self[i]) inf_charge[i] = inf_charge[i+1];
      else {
        if (a[i]) {
          inf_charge[i] = inf_charge[i+1] || r[i];
        } else {
          inf_charge[i] = inf_charge[i+1] && r[i];
        }
      }
    }

    return inf_charge;
  }

  cerr << "not subtask 1\n";
  assert(0);
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...