답안 #996202

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
996202 2024-06-10T08:45:50 Z reginox Xylophone (JOI18_xylophone) C++17
0 / 100
0 ms 344 KB
#include<bits/stdc++.h>
#include "xylophone.h"
#define ll long long
#define all(v) begin(v), end(v)
#define pi pair<int, int>
#define vi vector<int>
using namespace std;
int a[5005], n;
int p1[5005], p2[5005];

bool thu(int d){
    a[2] = d;
    for(int i = 3; i <= n; i++){
        if(a[i-1] > 0){
            if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = -p1[i];
            else a[i] = p1[i];
        }
        else{
            if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = p1[i];
            else a[i] = -p1[i];
        }
    }
    for(int i = 2; i <= n; i++) a[i] += a[i-1];
    int dd = *min_element(a+1, a+n+1);
    for(int i = 1; i <= n; i++){
        a[i] += 1-dd;
    }
    return *max_element(a+1, a+n+1) <= n;
}

void solve(int m){
    n = m;
    int d = query(1, 2);
    for(int i = 3; i <= n; i++){
        p1[i] = query(i-1, i), p2[i] = query(i-2, i);
    }
    for(int tp = -d; tp <= d; tp+=2*d){
        if(thu(tp)){
            for(int i = 1; i <= n; i++) answer(i, a[i]);
            return ;
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -