Submission #1116510

#TimeUsernameProblemLanguageResultExecution timeMemory
1116510hyakupXylophone (JOI18_xylophone)C++17
100 / 100
196 ms584 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; #define bug(x) cerr << #x << " " << x << endl; void solve(int N) { int n = N; vector<int> dif( n + 1 ), x( n + 1, 1 ); for( int i = 2; i <= n; i++ ){ dif[i] = query( i - 1, i ); if( i > 2 ){ int aux = query( i - 2, i ); if( aux == dif[i - 1] || aux == dif[i] ) x[i] = -x[i - 1]; else x[i] = x[i - 1]; } } pair<int, int> maxi( 0, 1 ), mini( 0, 1 ); for( int i = 2, sum = 0; i <= n; i++ ){ sum += dif[i]*x[i]; maxi = max( maxi, make_pair( sum, i ) ); mini = min( mini, make_pair( sum, i ) ); } int val; if( maxi.second < mini.second ){ val = 1 + abs(maxi.first); for( int i = 2; i <= n; i++ ) x[i] = -x[i]; } else val = 1 + abs(mini.first); answer( 1, val ); for( int i = 2; i <= n; i++ ){ val += dif[i]*x[i]; answer( i, val ); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...