Submission #829490

# Submission time Handle Problem Language Result Execution time Memory
829490 2023-08-18T11:26:32 Z vnm06 Mechanical Doll (IOI18_doll) C++14
37 / 100
74 ms 12036 KB
#include<bits/stdc++.h>
#include "doll.h"
using namespace std;

bool st2(int n)
{
    return n==(n&(-n));
}

vector<int> C;
vector<int> posl;
vector<int> posl2;

void merge_posl(int le, int ri)
{
    if(le==ri) return;
    int mid=(le+ri)/2;
    merge_posl(le, mid);
    merge_posl(mid+1, ri);
    posl2.resize(ri-le+1);
    for(int i=0; i<ri-le+1; i++)
    {
        if(i%2==0) posl2[i]=posl[le+i/2];
        else posl2[i]=posl[mid+1+i/2];
    }
    for(int i=le; i<=ri; i++) posl[i]=posl2[i-le];
}

void create_circuit(int M, std::vector<int> A)
{
    int N = A.size();
    while(!st2(N+1))
    {
        N++;
        A.push_back(-1);
    }
    A.push_back(0);
    C.resize(M+1);
    for (int i = 0; i <= M; ++i) C[i]=-1;
    std::vector<int> X(N), Y(N);
    for (int k = 1; k <= N/2; k++)
    {
        X[k-1]=-2*k;
        Y[k-1]=-2*k-1;
    }
    int rm=1, le=1, ri=1;
    posl=A;
    merge_posl(0, N-1);
    /**
    while(rm!=N+1)
    {
        rm*=2;
        posl2.resize(rm);
        for(int i=0; i<rm; i++)
        {
            if(i%2==0) posl2[i]=posl[i/2];
            else posl2[i]=A[le+i/2];
        }
        le=ri+1;
        ri=le*2-1;
        posl=posl2;
        for(int i=0; i<posl.size(); i++) cout<<posl[i]<<" ";
        cout<<endl;
    }*/
    for (int k = N/2+1; k <=N; k++)
    {
        X[k-1]=posl[2*(k-N/2-1)];
        Y[k-1]=posl[2*(k-N/2-1)+1];
    }
   /// cout<<N<<endl;
  ///  for(int i=0; i<=M; i++) cout<<C[i]<<" ";
  ///  cout<<endl;
 ///  for(int i=0; i<N; i++) cout<<X[i]<<" "<<Y[i]<<endl;
    answer(C, X, Y);
}

Compilation message

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:46:9: warning: unused variable 'rm' [-Wunused-variable]
   46 |     int rm=1, le=1, ri=1;
      |         ^~
doll.cpp:46:15: warning: unused variable 'le' [-Wunused-variable]
   46 |     int rm=1, le=1, ri=1;
      |               ^~
doll.cpp:46:21: warning: unused variable 'ri' [-Wunused-variable]
   46 |     int rm=1, le=1, ri=1;
      |                     ^~
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 212 KB Output is partially correct
2 Partially correct 53 ms 10152 KB Output is partially correct
3 Partially correct 52 ms 10152 KB Output is partially correct
4 Partially correct 57 ms 10300 KB Output is partially correct
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 212 KB Output is partially correct
2 Partially correct 53 ms 10152 KB Output is partially correct
3 Partially correct 52 ms 10152 KB Output is partially correct
4 Partially correct 57 ms 10300 KB Output is partially correct
5 Partially correct 74 ms 10752 KB Output is partially correct
6 Partially correct 61 ms 12008 KB Output is partially correct
7 Partially correct 64 ms 12036 KB Output is partially correct
8 Partially correct 74 ms 11932 KB Output is partially correct
9 Partially correct 52 ms 11132 KB Output is partially correct
10 Partially correct 59 ms 11828 KB Output is partially correct
11 Partially correct 62 ms 11744 KB Output is partially correct
12 Partially correct 53 ms 11128 KB Output is partially correct
13 Partially correct 55 ms 11104 KB Output is partially correct
14 Partially correct 56 ms 11196 KB Output is partially correct
15 Partially correct 64 ms 11268 KB Output is partially correct
16 Partially correct 2 ms 724 KB Output is partially correct
17 Correct 32 ms 7732 KB Output is correct
18 Partially correct 53 ms 11120 KB Output is partially correct
19 Partially correct 54 ms 11052 KB Output is partially correct
20 Partially correct 59 ms 11836 KB Output is partially correct
21 Partially correct 61 ms 11804 KB Output is partially correct
22 Partially correct 67 ms 11808 KB Output is partially correct