Submission #238661

# Submission time Handle Problem Language Result Execution time Memory
238661 2020-06-12T09:24:15 Z Ruxandra985 Gondola (IOI14_gondola) C++14
35 / 100
18 ms 1920 KB
#include <bits/stdc++.h>
#include "gondola.h"
using namespace std;

int f[100010] , poz[100010];

int valid(int n, int v[]){

    int i , found , poz , ok , pin , fi , space;
    found = -1;
    poz = 0;
    ok = 0;

    for (i = 0 ; i < n ; i++)
        v[i]--;

    for (i = 0 ; i < n ; i++){

        if (f[v[i]])
            return 0;

        f[v[i]] = 1;

        if (v[i] < n){

            if (found == -1){
                found = v[i];
                poz = i;
                pin = i;
                fi = v[i];
            }
            else {
                if (found > v[i]){

                    if (ok == 1)
                        return 0;
                    ok = 1;

                    space = n - 1 - found + v[i];

                    if (space != i - poz - 1)
                        return 0;

                    found = v[i];
                    poz = i;

                }
                else {

                    space = v[i] - found - 1;

                    if (space != i - poz - 1)
                        return 0;




                    found = v[i];
                    poz = i;
                }
            }

        }


    }

    /// verif cu ult poz si prima poz

    if (found == -1)
        return 1;


    if (found > fi){

        if (ok == 1)
            return 0;
        ok = 1;

        space = n - 1 - found + fi;

        if (space != (n - 1) - poz + pin)
            return 0;


    }
    else {

        if (!ok)
            return 0;

        space = fi - found - 1;

        if (space != (n - 1) - poz + pin)
            return 0;

    }


    return 1;
}

/// prima parte e ok


int replacement(int n, int v[], int w[]){
    int found , maxi , p , i , len;
    found = 0;

    maxi = 0;
    p = 0;

    for (i = 0 ; i < n ; i++){

        f[v[i]] = i + 1;

        if (v[i] > maxi){
            maxi = v[i];
            p = i;
        }

        if (v[i] <= n){
            found = v[i];
        }
        if (found){
            poz[i] = found;

            found++;
            if (found == n + 1)
                found = 1;
        }


    }

    if (!found) /// nu ai gasit pana acum, iei o secventa random
        found = 1;

    for (i = 0 ; i < n && poz[i] == 0 ; i++){

        poz[i] = found;
        found++;
        if (found == n + 1)
            found = 1;

    }

    len = 0;
    for (i = n + 1 ; i <= maxi ; i++){

        if (f[i]){ /// am nevoie de i
            w[len] = poz[ f[i] - 1 ];
            poz[f[i] - 1] = i;
        }
        else {
            w[len] = poz[p];
            poz[p] = i;
        }

        len++;
    }
    return len;

}

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

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

Compilation message

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:80:15: warning: 'fi' may be used uninitialized in this function [-Wmaybe-uninitialized]
         space = n - 1 - found + fi;
         ~~~~~~^~~~~~~~~~~~~~~~~~~~
gondola.cpp:94:36: warning: 'pin' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (space != (n - 1) - poz + pin)
                      ~~~~~~~~~~~~~~^~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 10 ms 768 KB Output is correct
7 Correct 17 ms 768 KB Output is correct
8 Correct 15 ms 1024 KB Output is correct
9 Correct 10 ms 640 KB Output is correct
10 Correct 16 ms 1152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 10 ms 768 KB Output is correct
7 Correct 17 ms 768 KB Output is correct
8 Correct 15 ms 1024 KB Output is correct
9 Correct 8 ms 640 KB Output is correct
10 Correct 17 ms 1152 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 4 ms 384 KB Output is correct
13 Correct 11 ms 896 KB Output is correct
14 Correct 5 ms 384 KB Output is correct
15 Correct 18 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
11 Correct 17 ms 1824 KB Output is correct
12 Correct 17 ms 1920 KB Output is correct
13 Incorrect 17 ms 1920 KB Integer 0 violates the range [1, 100016]
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -