Submission #1170068

#TimeUsernameProblemLanguageResultExecution timeMemory
1170068niepamietamhaslaNaan (JOI19_naan)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#include "minerals.h"

void rozw(vector<int> lewo, vector<int> prawo, bool c){
    if(lewo.size() == 0 and prawo.size() == 0) return;
    if(lewo.size() == 1 and prawo.size() == 1) {  Answer(lewo[0], prawo[0]); return; }
    if(lewo.size() == 2 and prawo.size() == 2){
        if(c){
            int curr = Query(lewo[0]);
            int nowy = Query(prawo[0]);
            if(nowy != curr){
                Answer(lewo[0], prawo[0]);
                Answer(lewo[1], prawo[1]);
                return;
            }
            else{
                Answer(lewo[0], prawo[1]);
                Answer(lewo[1], prawo[0]);
                return;
            }
        }
        else{
            int curr = Query(lewo[0]);
            int nowy = Query(prawo[0]);
            if(nowy == curr){
                Answer(lewo[0], prawo[0]);
                Answer(lewo[1], prawo[1]);
                return;
            }
            else{
                Answer(lewo[0], prawo[1]);
                Answer(lewo[1], prawo[0]);
                return;
            }
        }
    }
    int mid = lewo.size() / 2;
    // for(auto u : lewo){
    //     cerr << u << " ";
    // }
    // cout << " lew\n";
    // for(auto u : prawo){
    //     cerr << u << " ";
    // }
    // cout << " praw\n";
    vector<int> l1;
    vector<int> l2;
    vector<int> p1;
    vector<int> p2;
    int poprz = -1;
    for(int i = 0; i < mid; ++i){
        poprz = Query(lewo[i]);
        l1.push_back(lewo[i]);
    }
    for(int i = mid; i < lewo.size(); ++i){
        l2.push_back(lewo[i]);
    }
    for(int i = 0; i < prawo.size(); ++i){
        int nowy = Query(prawo[i]);
        if(c){
            if(nowy == poprz){
                p2.push_back(prawo[i]);
            }
            else{
                p1.push_back(prawo[i]);
            }
        }
        else{
            if(nowy == poprz){
                p1.push_back(prawo[i]);
            }
            else{
                p2.push_back(prawo[i]);
            }
        }
        poprz = nowy;
    }
    rozw(l1, p1, c ^ 1);
    rozw(l2, p2, c);
}

void Solve(int N){
    vector<int> lewo;
    vector<int> prawo;
    int prev = 0;
    for(int i = 1; i <= 2 * N; ++i){
        int ile = Query(i);
        if(ile != prev){
            lewo.push_back(i);
        }
        else{
            prawo.push_back(i);
        }
        prev = ile;
    }
    rozw(lewo, prawo, 1);
}

Compilation message (stderr)

naan.cpp:3:10: fatal error: minerals.h: No such file or directory
    3 | #include "minerals.h"
      |          ^~~~~~~~~~~~
compilation terminated.