Submission #1316208

#TimeUsernameProblemLanguageResultExecution timeMemory
1316208sebokxmedians (balkan11_medians)C++20
5 / 100
65 ms11420 KiB
#include <iostream> #include <vector> #include <set> using namespace std; void solve() { int n; if (!(cin >> n)) return; vector<int> b(n); set<int> unused; for (int i = 1; i <= 2 * n - 1; i++) unused.insert(i); for (int i = 0; i < n; i++) { cin >> b[i]; unused.erase(b[i]); // Te liczby są zarezerwowane dla tablicy B } // Pierwszy element to zawsze pierwsza mediana cout << b[0] << " "; for (int i = 1; i < n; i++) { if (b[i] > b[i - 1]) { // Mediana rośnie: dodajemy b[i] i największy dostępny "wypełniacz" int high = *unused.rbegin(); cout << b[i] << " " << high << " "; unused.erase(high); } else if (b[i] < b[i - 1]) { // Mediana maleje: dodajemy b[i] i najmniejszy dostępny "wypełniacz" int low = *unused.begin(); cout << b[i] << " " << low << " "; unused.erase(low); } else { // Mediana bz: jeden wypełniacz z dołu, jeden z góry int low = *unused.begin(); int high = *unused.rbegin(); cout << low << " " << high << " "; unused.erase(low); unused.erase(high); } } cout << "\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...