Submission #996202

#TimeUsernameProblemLanguageResultExecution timeMemory
996202reginoxXylophone (JOI18_xylophone)C++17
0 / 100
0 ms344 KiB
#include<bits/stdc++.h> #include "xylophone.h" #define ll long long #define all(v) begin(v), end(v) #define pi pair<int, int> #define vi vector<int> using namespace std; int a[5005], n; int p1[5005], p2[5005]; bool thu(int d){ a[2] = d; for(int i = 3; i <= n; i++){ if(a[i-1] > 0){ if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = -p1[i]; else a[i] = p1[i]; } else{ if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = p1[i]; else a[i] = -p1[i]; } } for(int i = 2; i <= n; i++) a[i] += a[i-1]; int dd = *min_element(a+1, a+n+1); for(int i = 1; i <= n; i++){ a[i] += 1-dd; } return *max_element(a+1, a+n+1) <= n; } void solve(int m){ n = m; int d = query(1, 2); for(int i = 3; i <= n; i++){ p1[i] = query(i-1, i), p2[i] = query(i-2, i); } for(int tp = -d; tp <= d; tp+=2*d){ if(thu(tp)){ for(int i = 1; i <= n; i++) answer(i, a[i]); return ; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...