Submission #1251923

#TimeUsernameProblemLanguageResultExecution timeMemory
1251923dssfsuper2Xylophone (JOI18_xylophone)C++20
100 / 100
26 ms460 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
void solve(int N) {
    vector<int> nums={0, 0, query(1, 2)};
    //0 1 
    for(int i = 3;i<=N;i++){
        int ld = query(i-1, i);
        int ld2=query(i-2, i);
        int num=nums[i-1]+ld;
        if(nums[i-2]<nums[i-1]){
            if(ld+nums[i-1]-nums[i-2]!=ld2)num=nums[i-1]-ld;
        }
        else{
            if(ld+nums[i-2]-nums[i-1]==ld2)num=nums[i-1]-ld;
        }
        nums.push_back(num);
    }
    int mm=*min_element(nums.begin(), nums.end());
    for(int i = 1;i<=N;i++)nums[i]-=mm-1;
    int pf, pl;
    for(int i = 1;i<=N;i++){
        if(nums[i]==1)pf=i;
        if (nums[i]==N)pl=i;
    }
    if (pf>pl){
        for(int i = 1;i<=N;i++)nums[i]=N-nums[i]+1;
    }
    for(int i = 1;i<=N;i++)answer(i, nums[i]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...