제출 #1143794

#제출 시각아이디문제언어결과실행 시간메모리
1143794bekzhan29Xylophone (JOI18_xylophone)C++20
100 / 100
27 ms448 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll N=5100; ll a[N]; ll querry(ll l, ll r) { // cout<<"query: "<<l<<" "<<r<<endl; ll ans=query(l,r); // cout<<"answer: "<<ans<<endl; return ans; } void solve(int n) { a[1]=0; a[2]=querry(1,2); for(ll i=3;i<=n;i++) { ll x=querry(i-1,i); if(a[i-2]<a[i-1]) { if(querry(i-2,i)==a[i-1]-a[i-2]+x) a[i]=a[i-1]+x; else a[i]=a[i-1]-x; } else { if(querry(i-2,i)==a[i-2]-a[i-1]+x) a[i]=a[i-1]-x; else a[i]=a[i-1]+x; } } ll mn=1,mx=1; // for(ll i=1;i<=n;i++) // cout<<a[i]<<" "; // cout<<endl; for(ll i=2;i<=n;i++) { if(a[mn]>a[i]) mn=i; if(a[mx]<a[i]) mx=i; } if(mn>mx) { for(ll i=1;i<=n;i++) a[i]*=-1; swap(mn,mx); } mx=a[mn]; // for(ll i=1;i<=n;i++) // cout<<a[i]-mx+1<<" "; // cout<<endl; for(ll i=1;i<=n;i++) answer(i,a[i]-mx+1); } /* 5 2 1 5 3 4 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...