Submission #702844

#TimeUsernameProblemLanguageResultExecution timeMemory
702844salmonXylophone (JOI18_xylophone)C++14
47 / 100
128 ms320 KiB
#include <bits/stdc++.h> #include "xylophone.h" using namespace std; void solve(int N){ int lst[5100]; int q[5100]; vector<int> v; int en = 1; for(int i = N - 1; i >= 1; i--){ if(query(1,i) != N - 1){ en = i + 1; break; } } int l = en; lst[en] = N; q[en] = 0; if(en != 1){ lst[en - 1] = N - query(en - 1, en); } for(int i = en - 2; i > 0; i--){ int v = query(i,i + 1); q[i] = query(i,i + 2); if(lst[i + 1] < lst[i + 2]){ if(q[i] == lst[i + 2] - lst[i + 1] + v){ lst[i] = lst[i + 1] - v; } else{ lst[i] = lst[i + 1] + v; } } else{ if(q[i] == lst[i + 1] - lst[i + 2] + v){ lst[i] = lst[i + 1] + v; } else{ lst[i] = lst[i + 1] - v; } } } if(en != N){ lst[en + 1] = N - query(en, en + 1); } for(int i = en + 2; i <= N; i++){ int v = query(i - 1,i); q[i] = query(i - 2,i); if(lst[i - 1] < lst[i - 2]){ if(q[i] == lst[i - 2] - lst[i - 1] + v){ lst[i] = lst[i - 1] - v; } else{ lst[i] = lst[i - 1] + v; } } else{ if(q[i] == lst[i - 1] - lst[i - 2] + v){ lst[i] = lst[i - 1] + v; } else{ lst[i] = lst[i - 1] - v; } } } for(int i = 1; i <= N; i++){ answer(i,lst[i]); } }

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:20:9: warning: unused variable 'l' [-Wunused-variable]
   20 |     int l = en;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...