Submission #50735

# Submission time Handle Problem Language Result Execution time Memory
50735 2018-06-13T06:12:24 Z Talant Gondola (IOI14_gondola) C++17
25 / 100
14 ms 1020 KB
#include "gondola.h"

#include <bits/stdc++.h>

#define mk make_pair
#define pb push_back
#define fr first
#define sc second

using namespace std;

const int N = 2e6 + 5;

int u[N],mx;
int id;
int mn = 1e9 + 7;

vector <pair<int,int> > v;

int valid(int n, int inputSeq[])
{
      for (int i = 0; i < n; i ++) {
            if (inputSeq[i] < mn)
                  mn = inputSeq[i],id = i;
            mx = max(mx,inputSeq[i]);
      }
      if (mx > n)
            return 0;
      int o = mn;
      for (int i = id - 1; i >= 0; i --) {
            mn --;
            if (mn == 0) mn = n;
            if (inputSeq[i] > n)
                  continue;
            if (mn != inputSeq[i])
                  return 0;
      }
      mn = o;
      for (int i = id + 1; i < n; i ++) {
            mn ++;
            if (mn == n + 1) mn = 1;
            if (inputSeq[i] > n)
                  continue;
            if (mn != inputSeq[i])
                  return 0;
      }
      return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
     for (int i = 0; i < n; i ++) {
            if (gondolaSeq[i] < mn)
                  mn = gondolaSeq[i],id = i;
      }
      if (mn > n) {
            int cn = 0;
            for (int i = 0; i < n; i ++)
                  v.pb(mk(gondolaSeq[i],++cn));
      }
      else {
            int o = mn;
            for (int i = id; i >= 0; i --) {
                  if (gondolaSeq[i] > n) {
                        v.pb(mk(gondolaSeq[i],mn));
                  }
                  mn --;
                  if (mn == 0)
                        mn = n;
            }
            mn = o;
            for (int i = id; i < n; i ++) {
                  if (gondolaSeq[i] > n) {
                        v.pb(mk(gondolaSeq[i],mn));
                  }
                  mn ++;
                  if (mn == n + 1)
                        mn = 1;
            }
      }
      sort (v.begin(),v.end());

      int last = n + 1;
      int cnt = 0;

      for (auto to : v) {
            replacementSeq[cnt ++] = to.sc;
            for (int i = last; i < to.fr; i ++) {
                  replacementSeq[cnt ++] = i;
            }
      }
      return (cnt);

}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 428 KB Output is correct
4 Correct 2 ms 604 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 604 KB Output is correct
2 Correct 2 ms 604 KB Output is correct
3 Correct 2 ms 604 KB Output is correct
4 Correct 2 ms 604 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 7 ms 724 KB Output is correct
7 Correct 14 ms 868 KB Output is correct
8 Correct 11 ms 868 KB Output is correct
9 Correct 5 ms 868 KB Output is correct
10 Correct 12 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 876 KB Output is correct
2 Correct 2 ms 876 KB Output is correct
3 Correct 2 ms 876 KB Output is correct
4 Correct 2 ms 876 KB Output is correct
5 Correct 2 ms 876 KB Output is correct
6 Correct 7 ms 876 KB Output is correct
7 Correct 13 ms 892 KB Output is correct
8 Correct 11 ms 892 KB Output is correct
9 Correct 5 ms 892 KB Output is correct
10 Correct 12 ms 892 KB Output is correct
11 Correct 2 ms 892 KB Output is correct
12 Correct 2 ms 892 KB Output is correct
13 Correct 8 ms 892 KB Output is correct
14 Correct 2 ms 892 KB Output is correct
15 Correct 14 ms 892 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 892 KB Output is correct
2 Correct 2 ms 892 KB Output is correct
3 Correct 2 ms 892 KB Output is correct
4 Correct 2 ms 892 KB Output is correct
5 Correct 2 ms 892 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 892 KB Output is correct
2 Correct 2 ms 892 KB Output is correct
3 Correct 2 ms 892 KB Output is correct
4 Correct 2 ms 892 KB Output is correct
5 Correct 2 ms 892 KB Output is correct
6 Correct 2 ms 892 KB Output is correct
7 Incorrect 6 ms 1012 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1012 KB Output is correct
2 Correct 2 ms 1012 KB Output is correct
3 Correct 2 ms 1012 KB Output is correct
4 Correct 2 ms 1012 KB Output is correct
5 Correct 2 ms 1012 KB Output is correct
6 Correct 2 ms 1012 KB Output is correct
7 Incorrect 6 ms 1020 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1020 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1020 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1020 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1020 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -