Submission #660566

#TimeUsernameProblemLanguageResultExecution timeMemory
660566600Mihnea중앙값 배열 (balkan11_medians)C++17
85 / 100
1081 ms1356 KiB
bool home = 0;

#include <bits/stdc++.h>

using namespace std;

const int N = 200000 + 7;
int n;
int b[N];
int a[N];
bool lib[N];

int nxt_up(int i)
{
  for (int j = i; j <= 2 * n - 1; j++)
  {
    if (lib[j] == 1)
    {
      lib[j] = 0;
      return j;
    }
  }
  assert(0);
}

int nxt_down(int i)
{
  for (int j = i; j >= 1; j--)
  {
    if (lib[j] == 1)
    {
      lib[j] = 0;
      return j;
    }
  }
  assert(0);
}

int main()
{
  if (home == 0)
  {
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  }
  else
  {
    freopen ("input.txt", "r", stdin);
  }

  cin >> n;
  for (int i = 1; i <= 2 * n - 1; i++)
  {
    lib[i] = 1;
  }
  for (int i = 1; i <= n; i++)
  {
    cin >> b[i];
  }
  a[1] = nxt_up(b[1]);
  for (int i = 2; i <= n; i++)
  {
    if (i == 5)
    {
      ///break;
    }
    if (b[i] == b[i - 1])
    {
      a[2 * i - 2] = nxt_up(1);
      a[2 * i - 1] = nxt_down(2 * n - 1);
      ///cout << "a\n";
      continue;
    }
    if (b[i] < b[i - 1])
    {
      if (lib[b[i]])
      {
        a[2 * i - 2] = nxt_up(b[i]);
        a[2 * i - 1] = nxt_up(1);
      }
      else
      {
        a[2 * i - 2] = nxt_up(1);
        a[2 * i - 1] = nxt_up(1);
      }
     /// cout << "b\n";
      continue;
    }
    if (b[i] > b[i - 1])
    {
      if (lib[b[i]])
      {
        a[2 * i - 2] = nxt_down(b[i]);
        a[2 * i - 1] = nxt_down(2 * n - 1);
      }
      else
      {
        a[2 * i - 2] = nxt_down(2 * n - 1);
        a[2 * i - 1] = nxt_down(2 * n - 1);
      }
///cout << "c\n";
      continue;
    }
    assert(0);
  }
  for (int i = 1; i <= 2 * n - 1; i++)
  {
    cout << a[i] << " ";
  }
  cout << "\n";
  return 0;
}

Compilation message (stderr)

medians.cpp: In function 'int main()':
medians.cpp:47:13: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |     freopen ("input.txt", "r", stdin);
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...