Submission #953705

# Submission time Handle Problem Language Result Execution time Memory
953705 2024-03-26T13:55:12 Z emad234 Gondola (IOI14_gondola) C++17
Compilation error
0 ms 0 KB
#include "gondola.h"
#include <bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define pii pair<ll, ll>
const ll mod = 1e9 + 9;
const ll mxN = 3e5 + 5;
using namespace std;
ll fastpow(ll x, ll p)
{
  if (p == 0)
    return 1;
  ll ans = fastpow(x, p / 2);
  return p % 2 == 0 ? (ans * ans) % mod : (((ans * ans) % mod) * x) % mod;
}
int gondolaSequence[100001];
int replacementSequence[250001];
map<int, int> realS;
set<int> nums;
bool allB;
bool cnt;
int aval;
int mx = 0;
int valid(int n, int inputSeq[])
{
  allB = 1;
  realS.clear();
  map<int, bool> vis;
  int st = 0;
  int val = 1;
  for (int i = 0; i < n; i++)
  {
    mx = max(mx, inputSeq[i]);

    if (vis[inputSeq[i]])
      return 0;
    vis[inputSeq[i]] = 1;
    if (inputSeq[i] <= n)
    {
      allB = 0;
      aval--;
      st = i;
      val = inputSeq[i];
    }
  }
  int og = st;
  while (1)
  {
    st++;
    val++;
    if (st >= n)
      st = 0;
    if (val > n)
      val = 1;
    realS[inputSeq[st]] = val;
    if (inputSeq[st] > n)
      nums.insert(inputSeq[st]);
    if (st == og)
      break;
    if (inputSeq[st] != val && inputSeq[st] <= n)
      return 0;
  }
  return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
  if (!valid(n, gondolaSeq))
    return 0;
  int id = 0;
  for (int i = n + 1; i <= mx; i++)
  {
    if (!realS[i])
    {
      replacementSeq[id] = realS[mx];
      realS[mx] = i;
    }
    else
      replacementSeq[id] = realS[i];
    id++;
  }
  return id;
}

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

int countReplacement(int n, int inputSeq[])
{
  cnt = 1;
  aval = n;
  ll ans = 1;
  if (!valid(n, inputSeq))
    return 0;
  int st = n + 1;
  for (auto x : nums)
  {
    ll num = fastpow(aval, x - st);
    ans *= num;
    ans %= mod;
    aval--;
    st = x + 1;
  }
  if (allB)
    ans *= n;
  ans %= mod;
  return ans;
}

Compilation message

/usr/bin/ld: /tmp/ccb3DWcz.o:(.bss+0xf4260): multiple definition of `gondolaSequence'; /tmp/ccvhTKfD.o:(.bss+0xf4300): first defined here
/usr/bin/ld: /tmp/ccb3DWcz.o:(.bss+0x0): multiple definition of `replacementSequence'; /tmp/ccvhTKfD.o:(.bss+0xa0): first defined here
collect2: error: ld returned 1 exit status