Submission #98591

# Submission time Handle Problem Language Result Execution time Memory
98591 2019-02-24T17:02:46 Z someone_aa popa (BOI18_popa) C++17
0 / 100
2 ms 384 KB
#include <bits/stdc++.h>
#include "popa.h"
#define ll long long
#define pb push_back
#define mp make_pair
using namespace std;
const int maxn = 1100;

/*int query(int a, int b, int c, int d) {
    cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
    int answer;
    cin>>answer;
    return answer;
}*/

int parent[maxn];
int li[maxn], ri[maxn];
int solvef(int l, int r) {
    if(l > r) return -1;
    if(l == r) return l;

    int lb = l, rb = r;
    int index = INT_MAX;
    while(lb < rb) {
        int mid = (lb + rb) / 2;

        if(mid > r || mid < l) break;

        if(query(l, mid, mid, r)) {
            rb = mid;
            index = min(index, mid);
        }
        else {
            lb = mid+1;
        }
    }

    //cout<<"["<<l<<", "<<r<<"] -> "<<index<<"\n";

    li[index] = solvef(l, index-1);
    ri[index] = solvef(index+1, r);
    return index;
}
// solve function
int solve(int n, int *l , int *r) {
    for(int i=0;i<n;i++) {
        li[i] = ri[i] = -1;
        parent[i] = i;
    }
    int x = solvef(0, n-1);

    for(int i=0;i<n;i++) {
        l[i] = li[i];
        r[i] = ri[i];
        //cout<<i<<": "<<l[i]<<" "<<r[i]<<"\n";
    }

    return x;
}

/*int main() {
    int a[6], b[6];
    cout<<solve(6, a, b);
    return 0;
}*/
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB invalid argument
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB invalid argument
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB invalid argument
2 Halted 0 ms 0 KB -