Submission #763303

# Submission time Handle Problem Language Result Execution time Memory
763303 2023-06-22T07:58:26 Z vjudge1 Xylophone (JOI18_xylophone) C++14
0 / 100
61 ms 208 KB
#include <bits/stdc++.h>
#include "xylophone.h"

using namespace std;

const int N = 5003;
int ans[N];
vector <int> w;

void solve(int n){
    w.push_back(1);
    w.push_back(n+1);
    int l = 1, r = n;
    while(l < r){
        int mid = (l+r)/2;
        int x = query(1, mid);
        if (x == (n-1)){
            r = mid;
        } else {
            l = mid+1;
        }
    }
    ans[l] = n;
    w.push_back(l);
    l = 1, r = n;
    while(l < r){
        int mid = (l+r)/2;
        int x = query(mid, n);
        if (x == (n-1)){
            l = mid;
        } else {
            r = mid-1;
        }
    }
    ans[l] = 1;
    w.push_back(l);
    for (int k = n-1; k > 1; k--){
        sort(w.begin(), w.end());
        int reset = 0;
        int l = 1, r = n;
        for (int i = 0; i < (int)w.size() - 1; i++){
            if (reset){
                 break;
            }
            l = w[i], r = w[i+1] - 1;
            while(l < r){
                int mid = (l+r)/2;
                int x = query(w[i], mid);
                if (x == abs(ans[w[i]] - k)){
                    r = mid;
                    reset = 1;
                } else {
                    l = mid+1;
                }
            }
        }
        ans[l] = k;
        w.push_back(l);
    }
    for (int i = 1; i <= n; i++){
        answer(i, ans[i]);
    }
}
# Verdict Execution time Memory Grader output
1 Incorrect 61 ms 208 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 61 ms 208 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 61 ms 208 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -