Submission #853939

# Submission time Handle Problem Language Result Execution time Memory
853939 2023-09-25T14:54:50 Z JooDdae Choreography (IOI23_choreography) C++17
45 / 100
68 ms 6472 KB
#include "choreography.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

struct dancer {
    vector<int> v;
    ll p[2], f[2];
    int o, s;

    dancer() {}
    dancer(vector<int> P) : v(P), p{0, 0}, f{0, 1}, o(0), s(0) {}
} A, B;

void init(int N, vector<int> P) {
    A = dancer(P);
    vector<int> R(N);
    for(int i=0;i<N;i++) R[P[i]] = i;
    B = dancer(R);
    return;
} 

void move_right(int K) {
    for(int i=0;i<2;i++) A.f[i] -= (K + (i != A.s))/2*2;
    if(K % 2) A.s = !A.s;

    B.p[0] += K, B.p[1] += K;
    if(K % 2) B.o = !B.o;

    return;
}

void move_left(int K) {
    for(int i=0;i<2;i++) A.f[i] += (K + (i == A.s))/2*2;
    if(K % 2) A.s = !A.s;

    B.p[0] -= K, B.p[1] -= K;
    if(K % 2) B.o = !B.o;

    return;
}

void swap_places() {
    A.s = !A.s;
    
    B.p[B.o]++, B.p[!B.o]--;
    B.o = !B.o;

    return;
}

void move_around() {
    swap(A, B);
    return;
}

int get_position(int D){
    int N = A.v.size();

    int b = (D & 1) ^ B.s;
    int u = (B.f[b]%N + D/2*2 + N) % N;
    return (B.v[u] + B.p[u % 2]%N + N) % N;
}
# Verdict Execution time Memory Grader output
1 Correct 68 ms 6460 KB Output is correct
2 Correct 67 ms 6460 KB Output is correct
3 Correct 67 ms 6460 KB Output is correct
4 Correct 68 ms 6464 KB Output is correct
5 Correct 44 ms 4928 KB Output is correct
6 Correct 44 ms 4928 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 344 KB 8th lines differ - on the 1st token, expected: '18', found: '16'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 63 ms 6464 KB Output is correct
2 Correct 67 ms 6472 KB Output is correct
3 Correct 60 ms 6468 KB Output is correct
4 Correct 37 ms 4924 KB Output is correct
5 Correct 43 ms 4916 KB Output is correct
6 Correct 37 ms 4924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 63 ms 6464 KB Output is correct
2 Correct 67 ms 6472 KB Output is correct
3 Correct 60 ms 6468 KB Output is correct
4 Correct 37 ms 4924 KB Output is correct
5 Correct 43 ms 4916 KB Output is correct
6 Correct 37 ms 4924 KB Output is correct
7 Incorrect 60 ms 6460 KB 9th lines differ - on the 1st token, expected: '63610', found: '63612'
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 68 ms 6460 KB Output is correct
2 Correct 67 ms 6460 KB Output is correct
3 Correct 67 ms 6460 KB Output is correct
4 Correct 68 ms 6464 KB Output is correct
5 Correct 44 ms 4928 KB Output is correct
6 Correct 44 ms 4928 KB Output is correct
7 Correct 63 ms 6464 KB Output is correct
8 Correct 67 ms 6472 KB Output is correct
9 Correct 60 ms 6468 KB Output is correct
10 Correct 37 ms 4924 KB Output is correct
11 Correct 43 ms 4916 KB Output is correct
12 Correct 37 ms 4924 KB Output is correct
13 Correct 64 ms 6464 KB Output is correct
14 Correct 67 ms 6460 KB Output is correct
15 Correct 65 ms 6460 KB Output is correct
16 Correct 43 ms 4924 KB Output is correct
17 Correct 43 ms 4924 KB Output is correct
18 Correct 49 ms 4924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 68 ms 6460 KB Output is correct
2 Correct 67 ms 6460 KB Output is correct
3 Correct 67 ms 6460 KB Output is correct
4 Correct 68 ms 6464 KB Output is correct
5 Correct 44 ms 4928 KB Output is correct
6 Correct 44 ms 4928 KB Output is correct
7 Incorrect 1 ms 344 KB 8th lines differ - on the 1st token, expected: '18', found: '16'
8 Halted 0 ms 0 KB -