Submission #953694

# Submission time Handle Problem Language Result Execution time Memory
953694 2024-03-26T13:32:11 Z emad234 Gondola (IOI14_gondola) C++17
55 / 100
34 ms 7004 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;
int realS[mxN];
bool allB;
bool cnt;
int aval;
int mx = 0;
int valid(int n, int inputSeq[])
{
  allB = 1;
  memset(realS, 0, sizeof(realS));
  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;
    if(!cnt) realS[inputSeq[st]] = val;
    if (st == og)
      break;
    if (inputSeq[st] != val && inputSeq[st] <= n)
      return 0;
  }
  return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
  valid(n, gondolaSeq);
  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;
  valid(n, inputSeq);
  int id = 0;
  for (int i = n + 1; i <= mx; i++)
  {
    if (!realS[i])
      ans *= aval;
    else
      aval--;
    ans %= mod;
  }
  if (allB)
    ans *= n;
  ans %= mod;
  return ans;
}

Compilation message

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:83:7: warning: unused variable 'id' [-Wunused-variable]
   83 |   int id = 0;
      |       ^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2652 KB Output is correct
5 Correct 1 ms 2652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2648 KB Output is correct
5 Correct 1 ms 2652 KB Output is correct
6 Correct 10 ms 4456 KB Output is correct
7 Correct 7 ms 2908 KB Output is correct
8 Correct 19 ms 6168 KB Output is correct
9 Correct 6 ms 3672 KB Output is correct
10 Correct 24 ms 6740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2648 KB Output is correct
5 Correct 1 ms 2808 KB Output is correct
6 Correct 14 ms 4444 KB Output is correct
7 Correct 7 ms 2744 KB Output is correct
8 Correct 19 ms 5980 KB Output is correct
9 Correct 6 ms 3676 KB Output is correct
10 Correct 24 ms 6640 KB Output is correct
11 Correct 1 ms 2652 KB Output is correct
12 Correct 1 ms 2652 KB Output is correct
13 Correct 14 ms 4184 KB Output is correct
14 Correct 1 ms 2652 KB Output is correct
15 Correct 34 ms 6848 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2652 KB Output is correct
5 Correct 1 ms 2652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2652 KB Output is correct
5 Correct 1 ms 2648 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2652 KB Output is correct
8 Correct 1 ms 2652 KB Output is correct
9 Correct 1 ms 2652 KB Output is correct
10 Correct 1 ms 2652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 2652 KB Output is correct
5 Correct 1 ms 2480 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2652 KB Output is correct
8 Correct 1 ms 2652 KB Output is correct
9 Correct 1 ms 2652 KB Output is correct
10 Correct 1 ms 2652 KB Output is correct
11 Correct 23 ms 6492 KB Output is correct
12 Correct 26 ms 7004 KB Output is correct
13 Correct 19 ms 4700 KB Output is correct
14 Correct 31 ms 6484 KB Output is correct
15 Correct 19 ms 4440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2648 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2648 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2904 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2652 KB Output isn't correct
2 Halted 0 ms 0 KB -