Submission #470797

#TimeUsernameProblemLanguageResultExecution timeMemory
470797Ya_AliXylophone (JOI18_xylophone)C++17
100 / 100
137 ms496 KiB
/* ** *** In the name of God *** ** */ // Only Haider is Amir al-Momenin #include <bits/stdc++.h> #include "xylophone.h" using namespace std; typedef long long ll; typedef pair<ll, ll> pll; const ll maxn = 5e3 + 5; const ll mod = 1e9 + 7; #define endl '\n' #define all(x) x.begin(), x.end() #define kill(x) return cout << x, 0 #define m (lx + rx) / 2 #define L 2 * x + 1 #define R L + 1 ll b1[maxn], b2[maxn], d1[maxn], d2[maxn]; bool flag1[maxn], flag2[maxn]; void build_b1(int n){ flag1[1] = 1; for(ll i = 1; i < n; i ++){ if(flag1[i])b1[i + 1] = b1[i] + d1[i]; else b1[i + 1] = b1[i] - d1[i]; if(i < n - 1){ if(d2[i] == d1[i] + d1[i + 1])flag1[i + 1] = flag1[i]; else flag1[i + 1] = !flag1[i]; } } ll mn = (n * 10); for(ll i = 1; i <= n; i++) mn = min(mn, b1[i]); for(ll i = 1; i <= n; i++) b1[i] += (1 - mn); } void build_b2(int n){ flag2[1] = 0; for(ll i = 1; i < n; i ++){ if(flag2[i])b2[i + 1] = b2[i] + d1[i]; else b2[i + 1] = b2[i] - d1[i]; if(i < n - 1){ if(d2[i] == d1[i] + d1[i + 1])flag2[i + 1] = flag2[i]; else flag2[i + 1] = !flag2[i]; } } ll mn = (n * 10); for(ll i = 1; i <= n; i++) mn = min(mn, b2[i]); for(ll i = 1; i <= n; i++) b2[i] += (1 - mn); } void solve(int n){ for(ll i = 1; i < n; i ++)d1[i] = query(i, i + 1); for(ll i = 1; i < n - 1; i ++)d2[i] = query(i, i + 2); build_b1(n); build_b2(n); ll p1, pn; for(ll i = 1; i <= n; i ++){ if(b1[i] == 1)p1 = i; if(b1[i] == n)pn = i; } if(p1 > pn) for(ll i = 1; i <= n; i ++)answer(i, b2[i]); else for(ll i = 1; i <= n; i ++)answer(i, b1[i]); }

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:55:2: warning: 'pn' may be used uninitialized in this function [-Wmaybe-uninitialized]
   55 |  if(p1 > pn)
      |  ^~
xylophone.cpp:55:2: warning: 'p1' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...