제출 #1323396

#제출 시각아이디문제언어결과실행 시간메모리
1323396hynmj곤돌라 (IOI14_gondola)C++20
20 / 100
24 ms4948 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
int valid(int n, int sequence[])
{
  vector<int> a(sequence, sequence + n);
  set<int> s;
  for (int i = 0; i < n; i++)
  {
    a[i]--;
    s.insert(a[i]);
  }
  if (s.size() != n)
    return 0;
  int j = 0;
  bool ok = 1;
  for (int i = 0; i < n; i++)
  {
    if (a[i] < n)
    {
      ok = 0;
      j = (i - a[i] + n) % n;
      break;
    }
  }
  if (ok)
    return 1;
  for (int k = 0; k < n; k++, j++)
  {
    if (a[j % n] < n && a[j % n] != k)
    {
      return 0;
    }
  }
  return 1;
}

//----------------------

int replacement(int n, int sequence[], int ans[])
{
  vector<int> a(sequence, sequence + n);
  int index = 0;
  set<pair<int, int>> p;
  int now = n;
  int j = 0;
  for (int i = 0; i < n; i++)
  {
    if (a[i] > n)
    {
      p.insert({a[i], i});
    }
    else
      j = (i - (a[i] - 1)) % n;
  }
  // cerr << j << endl;
  while (p.size())
  {
    int mx = p.begin()->first;
    int idx = p.begin()->second;
    // auto sp = *p.begin();
    p.erase(p.begin());
    for (; now < mx; now++, index++)
    {
      ans[index] = now;
    }
  }
  return index;
}

//----------------------

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...