Submission details
Task:Wario Kart I
Sender:aalto26cm_030
Submission time:2026-09-14 16:31:28 +0300
Language:C++ (C++20)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#26ACCEPTED0.00 sdetails
#27ACCEPTED0.00 sdetails
#28ACCEPTED0.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.00 sdetails
#31ACCEPTED0.00 sdetails
#32ACCEPTED0.00 sdetails
#33ACCEPTED0.00 sdetails
#34ACCEPTED0.00 sdetails
#35ACCEPTED0.00 sdetails
#36ACCEPTED0.00 sdetails
#37ACCEPTED0.00 sdetails
#38ACCEPTED0.00 sdetails
#39ACCEPTED0.00 sdetails
#40ACCEPTED0.00 sdetails
#41ACCEPTED0.00 sdetails
#42ACCEPTED0.00 sdetails
#43ACCEPTED0.00 sdetails
#44ACCEPTED0.00 sdetails
#45ACCEPTED0.00 sdetails
#46ACCEPTED0.00 sdetails
#47ACCEPTED0.00 sdetails
#48ACCEPTED0.00 sdetails
#49ACCEPTED0.00 sdetails
#50ACCEPTED0.00 sdetails
#51ACCEPTED0.00 sdetails
#52ACCEPTED0.00 sdetails
#53ACCEPTED0.00 sdetails
#54ACCEPTED0.00 sdetails
#55ACCEPTED0.00 sdetails
#56ACCEPTED0.01 sdetails
#57ACCEPTED0.00 sdetails
#58ACCEPTED0.01 sdetails
#59ACCEPTED0.00 sdetails
#60ACCEPTED0.07 sdetails
#61ACCEPTED0.07 sdetails
#62ACCEPTED0.04 sdetails
#63ACCEPTED0.04 sdetails
#64ACCEPTED0.12 sdetails
#65ACCEPTED0.02 sdetails
#66ACCEPTED0.11 sdetails
#67ACCEPTED0.01 sdetails
#68ACCEPTED0.06 sdetails
#69ACCEPTED0.01 sdetails

Code

#include <iostream>
#include <vector>
#include <functional>


void printNewLine(){std::cout << "\n";}
template<typename T, typename... Ts>
std::tuple<Ts...> tail(std::tuple<T,Ts...> as){
    return std::apply([](T &a, Ts... b){return std::make_tuple(b...);},as);
}

template<typename T>
void print(T a){std::cout << a;}

template<typename T, typename Ts>
void print(std::tuple<T,Ts> a){
    print(std::get<0>(a));
    print(" ");
    print(std::get<1>(a));
}

template<typename T, typename... Ts>
void print(std::tuple<T,Ts...> a){
    print(std::get<0>(a));
    print(" ");
    print(tail(a));
}
template<typename T>
void println(T a){print(a);printNewLine();}
template<typename T>
void printVec(std::vector<T> arr, int width = -1){
    if (width == -1) width = arr.size();
    for (int i = 0; i < (int)arr.size(); i++){
        if ((i%width) == width-1){
            print(" ");
            println(arr[i]);
        }else if ((i%width) == 0){        
            print(arr[i]);
        }else {
            print(" ");
            print(arr[i]);
        }
    }    
}

std::tuple<int> readInt1(){
    int a;
    std::cin >> a;
    return {a};
}
std::tuple<int,int> readInt2(){
    int a, b;
    std::cin >> a >> b;
    return {a,b};
}
std::tuple<int,int,int> readInt3(){
    int a, b, c;
    std::cin >> a >> b >> c;
    return {a,b,c};
}

std::vector<int> readVecInt(int n){
    std::vector<int> arr(n);
    for (int i = 0; i < n; i++){
        int a;
        std::cin >> a;
        arr[i] = a;
    }
    return arr;
}

std::vector<std::tuple<int,int>> readVecTup2(int n){
    std::vector<std::tuple<int,int>> arr(n);
    for (int i = 0; i < n; i++){
        int a, b;
        std::cin >> a;
        std::cin >> b;
        arr[i] = {a,b};
    }
    return arr;
}

std::vector<std::tuple<int,int,int>> readVecTup3(int n){
    std::vector<std::tuple<int,int,int>> arr(n);
    for (int i = 0; i < n; i++){
        int a, b, c;
        std::cin >> a;
        std::cin >> b;
        std::cin >> c;
        arr[i] = {a,b,c};
    }
    return arr;
}

template<typename T>
auto getTupleSort(){
    auto tupleSort = [](const std::tuple<T,T> &a, const std::tuple<T,T> &b){ 
        auto [ax, ay] = a;
        auto [bx, by] = b;
        return ay < by; };
    return tupleSort;
}


template<typename T>
void sortBy(std::vector<T> &arr){
    std::sort(arr.begin(),arr.end(),[](const T &a, const T &b){ return a < b; });
}


template<typename T>
T binarySearch(T min, T max, std::function<bool(T)> leq){
    if (min == max) return max;
    T guess = (min+max)/2;
    if (leq(guess)){
        return binarySearch(min,guess,leq);
    }else{
        return binarySearch(guess+1,max,leq);
    }
}

template<typename T>
T binarySearchDecending(T min, T max, std::function<bool(T)> leq){
    std::function<bool(T)> gt = [leq](T x){
        return !leq(x);
    };
    return binarySearch(min,max+1, gt)-1;
}

void carManufacturing(){
    auto [n, t] = readInt2();
    //auto [n, m, k] = readInt3();
    auto arr = readVecInt(n);
    double s = 0;
    for (int x: arr){
        s += 1.0/x;
    }
    std::function<bool(long long)> leq = [&arr,t](long long time){
        long long s = 0;
        for (int x : arr){
            s += time/x;
        }
        return t <= s;
    };
    println(binarySearch((long long)0,(long long)(t/s*(long long)n),leq));
}

template<typename T>
double avg(std::vector<T> &arr){
    double mult = 1.0/arr.size();
    double s = 0;
    for (T x : arr){
        s += mult*(double)x;
    }
    return s;
}
template<typename T>
T sum(std::vector<T> &arr){
    T s = 0;
    for (T x : arr){
        s += x;
    }
    return s;
}

void bottle(){
    auto [n] = readInt1();
    //auto [n, t] = readInt2();
    //auto [n, m, k] = readInt3();
    auto arr = readVecInt(n);
    double s = avg(arr);
    
    std::function<bool(long long)> leq = [&arr](long long t){
        long long s = 0;
        for (long long x : arr){
            if (x-t > 0){
                s += (x-t)/2;
            }else{
                s += (x-t);
            }
        }
        return 0 <= s;
    };
    println(binarySearchDecending((long long)0,(long long)(s),leq));
}

#include <set>
#include <algorithm>
void movie(){
    auto [n] = readInt1();
    auto arr = readVecInt(2*n);
    int* s = &arr[0];
    std::sort((long*)(s),(long*)(s)+n);
    int time = 0;
    int num = 0;
    for (int i = 0; i < n; i++){
        if (time <= arr[2*i]){
            time = arr[2*i+1];
            num += 1;
        }
    }
    println(num);
}

/*

    for (int i = 0; i < n; i++){
        int temp = arr[2*i+1];
        arr[2*i+1] = arr[2*i];
        arr[2*i] = temp;
    }
        */

void cow(){
    auto [n] = readInt1();
    auto dum = readVecInt(n);
    print(1);
    for (int i = 1; i < 30; i++){
        print(" ");
        if ((1<<i) <= 1000*1000*1000){
            print(1<<i);
        } else{
            print(0);
        }
    }    
}
template<typename T>
std::vector<T> cloneVec(std::vector<T> a){
    return a;
}

void castle(){
    auto [n] = readInt1();
    auto arr = readVecTup2(n);
    std::vector<std::tuple<int,int>> arr2 = cloneVec(arr);
    for (int i = 0; i < n; i++){
        auto [u,m] = arr[i];
        arr2[i] = {-(u+m),i};
    }
    sortBy(arr2);
    int us = 0;
    int ms = 0;
    printVec(arr2);
    for (int i = 0; i < n; i++){
        auto [s,idx] = arr2[i];
        auto [u,m] = arr[idx];
        if (i%2 == 0){
            us += u;
        } else {
            ms += m;
        }
    }
    println(us-ms);
}

template<typename T>
void extendedFibonachi(std::vector<T> &initial, int nlast, T upto, T mod ){
    for (int i = nlast; i <= upto; i++){
        initial[i] = 0;
        for (int n = 1; n <= nlast && n <= i; n++){
            initial[i] += initial[i-n];
            initial[i] %=mod;
        }
    }
}

void dice(){
    auto [n] = readInt1();
    std::vector<long long> arr(std::max(7,n+1));
    arr[0] = 1;
    for (int i = 0; i < 6; i++){
        arr[i+1] = 1<<i;
    }
    extendedFibonachi(arr,6,(long long)n,(long long)1000*1000*1000+7);
    println(arr[n]);
}

template<typename T>
std::vector<T> padding(std::vector<T> &initial, T num, int start, int end){
    std::vector<T> arr(start+initial.size()+end);
    for (int i = 0; i < start; i++){
        arr[i] = num;
    }
    for (int i = 0; i < (int)initial.size(); i++){
        arr[start+i] = initial[i];
    }
    for (int i = 0; i < end; i++){
        arr[start+initial.size()+i] = num;
    }
    return arr;
}

template<typename T>
int findMax(int start, int end, std::function<T(int)> &maxHeuristic){
    T initialGuess = maxHeuristic(start);
    int index = start;
    for (int i = start; i <= end; i++){
        if (initialGuess < maxHeuristic(i)){
            initialGuess = maxHeuristic(i);
            index = i;
        }
    }
    return index;
}

template<typename T>
void operateOnMax(int start, int end, std::function<T(int)> &maxHeuristic, std::function<void(int)> &found){
    found(findMax(start,end,maxHeuristic));
}
#include <stack>

template<typename T>
void stackOperate(T init,std::function<std::vector<T>(T)> operate){
    std::stack<T> stack;
    stack.push(init);
    while (!stack.empty()){
        T next = stack.top();
        stack.pop();
        std::vector<T> nextSteps = operate(next);
        for (T a : nextSteps){
            stack.push(a);
        }
    }
}

template<typename T>
void recursiveVectorSplit(int start, int end, int distl, int distr, std::function<T(int)> &maxHeuristic, std::function<void(int)> &found){
    if (start == end){
        return found(start);
    }else if (end < start){
        return;
    }
    std::tuple<int,int> range = {start,end};
    std::function<std::vector<std::tuple<int,int>>(std::tuple<int,int>)> splitter = [distl, distr,&maxHeuristic,&found](std::tuple<int,int> range){
        auto [start,end] = range;
        int idx = findMax(start, end, maxHeuristic);
        found(idx);
        std::vector<std::tuple<int,int>> next;
        if (idx+distl+1 <= end){
            next.push_back({idx+distl+1,end});
        }
        if (start <= idx-distr-1){
            next.push_back({start, idx-distr-1});
        }
        return next;
    };
    stackOperate(range,splitter);
}

void cardGame(){
    auto [n] = readInt1();
    auto arr = readVecInt(n);
    arr[0] = 0;
    arr[arr.size()-1] = 0;
    //printVec(arr);
    arr = padding(arr,0,1,1);
    //printVec(arr);
    std::function<int(int)> heuristic = [&arr](int idx){
        return arr[idx]-arr[idx-1]-arr[idx-2]-arr[idx+1]-arr[idx+2];
    };
    long long sum = 0;
    std::function<void(int)> operate = [&arr, &sum](int idx){
        arr[idx-2] = 0;
        arr[idx-1] = 0;
        sum += arr[idx];
        arr[idx+1] = 0;
        arr[idx+2] = 0;
        //printVec(arr);
    };
    //printVec(arr);
    //println(arr[arr.size()-1-2]);
    recursiveVectorSplit(2,(int)arr.size()-1-2,2,2,heuristic,operate);
    println(sum);
}
void mariocart(){
    auto [n,m,k] = readInt3();
    auto arr = readVecInt(m);
    std::set<int> c;
    for (int a : arr){ c.emplace(a);}
    int position = 0;
    for (int i = 1; i <=k; i++){
        if (c.find(position) != c.end()){
            position += 2;
        } else {
            position += 1;
        }
        position %= n;
    }
    println(position*100);
}


int main() {
    //carManufacturing();
    //bottle();
    //movie();
    //cow();
    //castle();
    //dice();
    //cardGame();
    mariocart();

    exit(0);
}

Test details

Test 1

Verdict: ACCEPTED

input
1 0 1 

correct output
0

user output
0

Test 2

Verdict: ACCEPTED

input
1 1 4 

correct output
0

user output
0

Test 3

Verdict: ACCEPTED

input
2 1 9 

correct output
0

user output
0

Test 4

Verdict: ACCEPTED

input
3 0 7 

correct output
100

user output
100

Test 5

Verdict: ACCEPTED

input
3 2 14 
0 2 

correct output
100

user output
100

Test 6

Verdict: ACCEPTED

input
3 2 9 
1 2 

correct output
100

user output
100

Test 7

Verdict: ACCEPTED

input
4 4 19 
0 1 2 3 

correct output
200

user output
200

Test 8

Verdict: ACCEPTED

input
4 1 18 

correct output
0

user output
0

Test 9

Verdict: ACCEPTED

input
4 4 9 
0 1 2 3 

correct output
200

user output
200

Test 10

Verdict: ACCEPTED

input
5 3 15 
2 3 4 

correct output
400

user output
400

Test 11

Verdict: ACCEPTED

input
5 2 25 
3 4 

correct output
100

user output
100

Test 12

Verdict: ACCEPTED

input
5 2 4 
0 4 

correct output
100

user output
100

Test 13

Verdict: ACCEPTED

input
5 3 1 
1 3 4 

correct output
100

user output
100

Test 14

Verdict: ACCEPTED

input
5 5 23 
0 1 2 3 4 

correct output
100

user output
100

Test 15

Verdict: ACCEPTED

input
5 1 1 

correct output
100

user output
100

Test 16

Verdict: ACCEPTED

input
5 5 24 
0 1 2 3 4 

correct output
300

user output
300

Test 17

Verdict: ACCEPTED

input
5 0 5 

correct output
0

user output
0

Test 18

Verdict: ACCEPTED

input
5 5 0 
0 1 2 3 4 

correct output
0

user output
0

Test 19

Verdict: ACCEPTED

input
5 0 9 

correct output
400

user output
400

Test 20

Verdict: ACCEPTED

input
10 6 30 
3 4 5 6 7 8 

correct output
200

user output
200

Test 21

Verdict: ACCEPTED

input
10 4 50 
0 1 7 9 

correct output
100

user output
100

Test 22

Verdict: ACCEPTED

input
10 4 9 
0 4 5 9 

correct output
200

user output
200

Test 23

Verdict: ACCEPTED

input
10 6 3 
1 2 4 5 7 8 

correct output
400

user output
400

Test 24

Verdict: ACCEPTED

input
10 10 45 
0 1 2 3 4 5 6 7 8 9 

correct output
0

user output
0

Test 25

Verdict: ACCEPTED

input
10 2 2 
2 8 

correct output
200

user output
200

Test 26

Verdict: ACCEPTED

input
10 9 48 
0 1 2 3 4 5 6 8 9 

correct output
600

user output
600

Test 27

Verdict: ACCEPTED

input
10 0 11 

correct output
100

user output
100

Test 28

Verdict: ACCEPTED

input
10 9 0 
0 2 3 4 5 6 7 8 9 

correct output
0

user output
0

Test 29

Verdict: ACCEPTED

input
10 0 18 

correct output
800

user output
800

Test 30

Verdict: ACCEPTED

input
100 55 297 
1 2 5 7 8 10 11 13 14 18 21 26...

correct output
6900

user output
6900

Test 31

Verdict: ACCEPTED

input
100 42 499 
0 2 3 8 9 12 14 18 19 20 22 23...

correct output
400

user output
400

Test 32

Verdict: ACCEPTED

input
100 44 92 
2 6 7 9 10 11 12 13 15 17 18 2...

correct output
3200

user output
3200

Test 33

Verdict: ACCEPTED

input
100 55 35 
1 2 4 5 9 12 14 15 20 21 22 24...

correct output
5400

user output
5400

Test 34

Verdict: ACCEPTED

input
100 97 451 
0 1 2 3 4 5 6 7 8 9 10 11 12 1...

correct output
8300

user output
8300

Test 35

Verdict: ACCEPTED

input
100 22 27 
8 18 20 24 29 35 36 39 44 48 5...

correct output
3200

user output
3200

Test 36

Verdict: ACCEPTED

input
100 90 474 
0 2 3 4 5 6 8 9 10 11 12 13 14...

correct output
1200

user output
1200

Test 37

Verdict: ACCEPTED

input
100 7 113 
30 31 43 45 72 77 97 

correct output
1900

user output
1900

Test 38

Verdict: ACCEPTED

input
100 88 5 
0 1 2 3 5 6 7 9 10 11 12 13 14...

correct output
900

user output
900

Test 39

Verdict: ACCEPTED

input
100 1 182 
50 

correct output
8400

user output
8400

Test 40

Verdict: ACCEPTED

input
200 110 593 
2 3 4 7 11 12 14 17 19 20 21 2...

correct output
14100

user output
14100

Test 41

Verdict: ACCEPTED

input
200 83 998 
0 3 5 6 7 11 14 16 17 18 19 20...

correct output
19600

user output
19600

Test 42

Verdict: ACCEPTED

input
200 87 185 
5 13 15 16 19 21 23 25 26 29 3...

correct output
6600

user output
6600

Test 43

Verdict: ACCEPTED

input
200 110 70 
3 4 5 8 10 12 13 14 15 17 18 2...

correct output
11000

user output
11000

Test 44

Verdict: ACCEPTED

input
200 194 901 
0 1 2 3 4 5 6 7 8 9 10 11 12 1...

correct output
16700

user output
16700

Test 45

Verdict: ACCEPTED

input
200 44 55 
2 16 17 18 22 23 31 37 40 41 4...

correct output
6800

user output
6800

Test 46

Verdict: ACCEPTED

input
200 179 948 
0 1 2 3 4 5 6 7 8 9 10 11 12 1...

correct output
17200

user output
17200

Test 47

Verdict: ACCEPTED

input
200 15 227 
3 14 17 52 53 61 63 83 87 91 1...

correct output
4400

user output
4400

Test 48

Verdict: ACCEPTED

input
200 175 11 
0 1 2 4 5 6 7 8 9 10 11 12 13 ...

correct output
2100

user output
2100

Test 49

Verdict: ACCEPTED

input
200 2 364 
99 100 

correct output
16600

user output
16600

Test 50

Verdict: ACCEPTED

input
1000 549 2964 
0 4 9 11 12 13 15 16 18 19 20 ...

correct output
60800

user output
60800

Test 51

Verdict: ACCEPTED

input
1000 417 4986 
0 2 4 8 9 11 12 13 15 18 19 21...

correct output
6600

user output
6600

Test 52

Verdict: ACCEPTED

input
1000 436 925 
0 1 2 4 5 8 9 10 13 16 18 25 2...

correct output
31700

user output
31700

Test 53

Verdict: ACCEPTED

input
1000 551 353 
0 2 4 6 9 12 13 18 20 21 22 23...

correct output
54500

user output
54500

Test 54

Verdict: ACCEPTED

input
1000 967 4504 
0 1 2 3 4 5 6 7 8 9 10 11 12 1...

correct output
83100

user output
83100

Test 55

Verdict: ACCEPTED

input
1000 222 275 
1 2 5 12 14 20 22 24 29 35 51 ...

correct output
33200

user output
33200

Test 56

Verdict: ACCEPTED

input
1000 893 4738 
0 2 3 4 5 7 8 10 11 12 13 14 1...

correct output
90500

user output
90500

Test 57

Verdict: ACCEPTED

input
1000 76 1136 
15 24 65 72 83 86 100 133 142 ...

correct output
22200

user output
22200

Test 58

Verdict: ACCEPTED

input
1000 874 55 
0 1 2 3 4 5 6 7 8 9 10 11 13 1...

correct output
10200

user output
10200

Test 59

Verdict: ACCEPTED

input
1000 10 1822 
7 13 133 142 218 316 495 499 5...

correct output
84100

user output
84100

Test 60

Verdict: ACCEPTED

input
100000 54882 296454 
0 2 3 4 5 6 7 9 15 16 18 20 21...

correct output
5941200

user output
5941200

Test 61

Verdict: ACCEPTED

input
100000 41702 498646 
4 5 6 7 9 11 14 17 18 23 24 29...

correct output
755600

user output
755600

Test 62

Verdict: ACCEPTED

input
100000 43600 92551 
2 4 7 10 12 17 18 30 34 35 36 ...

correct output
3319100

user output
3319100

Test 63

Verdict: ACCEPTED

input
100000 55080 35366 
1 2 3 4 6 7 8 12 13 14 15 17 2...

correct output
5465700

user output
5465700

Test 64

Verdict: ACCEPTED

input
100000 96704 450359 
0 1 2 3 4 5 6 8 9 10 11 12 13 ...

correct output
8642700

user output
8642700

Test 65

Verdict: ACCEPTED

input
100000 22199 27593 
6 14 28 38 39 45 46 48 49 50 5...

correct output
3364900

user output
3364900

Test 66

Verdict: ACCEPTED

input
100000 89287 473789 
0 1 2 3 4 5 6 7 8 9 10 12 13 1...

correct output
9652600

user output
9652600

Test 67

Verdict: ACCEPTED

input
100000 7630 113681 
0 8 18 24 27 64 69 85 92 102 1...

correct output
2231400

user output
2231400

Test 68

Verdict: ACCEPTED

input
100000 87344 5557 
0 1 2 3 4 5 7 8 9 10 11 13 14 ...

correct output
1043700

user output
1043700

Test 69

Verdict: ACCEPTED

input
100000 1037 182250 
34 264 299 412 456 495 653 655...

correct output
8414700

user output
8414700