Submission #58356

#TimeUsernameProblemLanguageResultExecution timeMemory
58356BenqXylophone (JOI18_xylophone)C++14
100 / 100
129 ms840 KiB
#include "xylophone.h" #include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef long double ld; typedef complex<ld> cd; typedef pair<int, int> pi; typedef pair<ll,ll> pl; typedef pair<ld,ld> pd; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; typedef vector<cd> vcd; template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>; #define FOR(i, a, b) for (int i=a; i<(b); i++) #define F0R(i, a) for (int i=0; i<(a); i++) #define FORd(i,a,b) for (int i = (b)-1; i >= a; i--) #define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--) #define sz(x) (int)(x).size() #define mp make_pair #define pb push_back #define f first #define s second #define lb lower_bound #define ub upper_bound #define all(x) x.begin(), x.end() const int MOD = 1000000007; const ll INF = 1e18; const int MX = 5001; int d1[MX], d2[MX], res[MX]; /* vi A = {0,5,3,4,1,2}; void answer(int a, int b) { cout << a << " " << b << "\n"; } int query(int l, int r) { int mx = l; FOR(i,l,r+1) if (A[i] > A[mx]) mx = i; int mn = l; FOR(i,l,r+1) if (A[i] < A[mn]) mn = i; return A[mx]-A[mn]; }*/ void solve(int N) { FOR(i,1,N) d1[i] = query(i,i+1); FOR(i,1,N-1) d2[i] = query(i,i+2); FOR(i,1,N-1) if (max(0,max(d1[i],d1[i]+d1[i+1]))-min(0,min(d1[i],d1[i]+d1[i+1])) != d2[i]) d1[i+1] *= -1; /*FOR(i,1,N) cout << d1[i] << " "; cout << "\n"; FOR(i,1,N-1) cout << d2[i] << " "; cout << "\n";*/ FOR(i,2,N+1) res[i] = res[i-1]+d1[i-1]; int lo = 1, hi = 1; FOR(i,2,N+1) { if (res[i] < res[lo]) lo = i; if (res[i] > res[hi]) hi = i; } if (lo > hi) { FOR(i,1,N+1) res[i] *= -1; swap(lo,hi); } int t = 1-res[lo]; FOR(i,1,N+1) res[i] += t; for(int i = 1; i <= N; i++) { answer(i, res[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...