Submission #291340

# Submission time Handle Problem Language Result Execution time Memory
291340 2020-09-05T07:25:47 Z georgerapeanu Gondola (IOI14_gondola) C++11
25 / 100
13 ms 1280 KB
#include "gondola.h"
#include <cstdio>
#include <algorithm>

using namespace std;

inline int get_in_range(int st,int dr,int val){
    int tmp = (val - st) % (dr - st + 1);

    if(tmp < 0){
        tmp += (dr - st + 1);
    }

    return tmp + st;
}

int stuff[250005];

int valid(int n, int inputSeq[])
{
    int pos = -1;
    for(int i = 0;i < n;i++){
        if(inputSeq[i] <= n){
            pos = i;
        }
        stuff[inputSeq[i]]++;
        if(stuff[inputSeq[i]] > 1){
            return 0;
        }
    }

    for(int i = 0;i < n;i++){
        if(inputSeq[i] <= n && inputSeq[i] != get_in_range(1,n,inputSeq[pos] + i - pos)){
            return 0;
        }
    }

    return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{

    int ma = 0,ma_pos;
    int pos = 0;

    for(int i = 0;i < n;i++){
        stuff[gondolaSeq[i]] = i;
        ma = max(ma,gondolaSeq[i]);
        if(ma == gondolaSeq[i]){
            ma_pos = i;
        }
        if(gondolaSeq[i] <= n){
            pos = i;
        }
    }

    for(int i = 0;i < n;i++){
        gondolaSeq[i] = get_in_range(1,n,gondolaSeq[pos] + i - pos);
    }

    int len = 0;

    for(int i = n + 1;i <= ma;i++){
        if(stuff[i] == 0){
            replacementSeq[len++] = gondolaSeq[ma_pos];
            gondolaSeq[ma_pos] = i;
        }
        else{
           replacementSeq[len++] = gondolaSeq[stuff[i]];
           gondolaSeq[stuff[i]] = i;
        }
    }

    return len;
}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:68:48: warning: 'ma_pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
   68 |             replacementSeq[len++] = gondolaSeq[ma_pos];
      |                                                ^~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 0 ms 128 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 6 ms 640 KB Output is correct
7 Correct 12 ms 1024 KB Output is correct
8 Correct 10 ms 800 KB Output is correct
9 Correct 3 ms 512 KB Output is correct
10 Correct 12 ms 896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 5 ms 640 KB Output is correct
7 Correct 12 ms 1024 KB Output is correct
8 Correct 10 ms 896 KB Output is correct
9 Correct 3 ms 512 KB Output is correct
10 Correct 12 ms 896 KB Output is correct
11 Correct 0 ms 256 KB Output is correct
12 Correct 0 ms 256 KB Output is correct
13 Correct 6 ms 1280 KB Output is correct
14 Correct 0 ms 384 KB Output is correct
15 Correct 13 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 1 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Incorrect 1 ms 384 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 1 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Incorrect 1 ms 384 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -