Submission #1272353

#TimeUsernameProblemLanguageResultExecution timeMemory
1272353thesenXylophone (JOI18_xylophone)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "xylophone.h"
#define pb push_back
#define ll long long
#define vll vector <ll>
#define vbool vector<bool>
#define pairll pair<ll,ll>
#define fi first
#define sc second
#define rever greater<ll>()
using namespace std;

void solve(ll n){
    ll a;
    for(ll i = 1; i < n; i++){
        if(query(i+1, n) != n-1){
            a = i;break;
        }
    }

    vll res(n+1); res[a]=1;
    if(a > 1){
        ll d = query(a-1, a);
        res[a-1] = d+1;
    }
    for(ll i = a-2; i > 0; i--){
        ll x = query(i, i+2);
        ll y = query(i, i+1);
        ll z = abs(res[i+1]-res[i+2]);

        if(x == y+z){
            if(res[i+1] > res[i+2]){
                res[i] = res[i+1]+y;
            }else{
                res[i] = res[i+1]-y;
            }
        }else if(x == z){
            if(res[i+1] > res[i+2]){
                res[i] = res[i+1]-y;
            }else{
                res[i] = res[i+1]+y;
            }
        }else{
            if(res[i+1] > res[i+2]){
                res[i] = res[i+1]-y;
            }else{
                res[i] = res[i+1]+y;
            }
        }
    }

    res[a+1] = 1 + query(a, a+1);
    for(ll i = a+2; i <= n; i++){
        ll x = query(i, i-2);
        ll y = query(i, i-1);
        ll z = abs(res[i-1]-res[i-2]);

        if(x == y+z){
            if(res[i-1] > res[i-2]){
                res[i] = res[i-1]+y;
            }else{
                res[i] = res[i-1]-y;
            }
        }else if(x == z){
            if(res[i-1] > res[i-2]){
                res[i] = res[i-1]-y;
            }else{
                res[i] = res[i-1]+y;
            }
        }else{
            if(res[i-1] > res[i-2]){
                res[i] = res[i-1]-y;
            }else{
                res[i] = res[i-1]+y;
            }
        }
    }

    for(ll i = 1; i <= n; i++)answer(i, res[i]);
    
}

// int main(){
//     ios::sync_with_stdio(false); cin.tie(nullptr);
//     ll t=1; //cin >> t;
//     for(int i = 1; i <= t; i++){
//         solve();
//     }
// }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccXNlPdU.o: in function `main':
grader.cpp:(.text.startup+0x30): undefined reference to `solve(int)'
collect2: error: ld returned 1 exit status