Submission #1176009

#TimeUsernameProblemLanguageResultExecution timeMemory
1176009LGQ_A3K25medians (balkan11_medians)C++20
100 / 100
16 ms5564 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define db double
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) a*b / __gcd(a,b)
#define I first
#define II second
#define pb push_back
#define ii pair<int,int>
const int INF = 2 * 1e9;
const int N = 2e5 + 1;
const int MOD = 1e9 + 7;
int n, a[N], b[N], l, r, used[N];
int R()
{
    while (r >= 1 && used[r]) r--;
    return r;
}
int L()
{
    while (l <= 2 * n - 1 && used[l]) l++;
    return l;
}
int32_t main()
{
#define TASKNAME ""
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    if (fopen(TASKNAME".inp","r" ))
    {
        freopen(TASKNAME".inp","r",stdin);
        freopen(TASKNAME".out","w",stdout);
    }
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> b[i];
    vector<int> ans;
    ans.pb(b[1]);
    used[b[1]] = 1;
    l = 1, r = 2 * n - 1;
    for (int i = 2; i <= n; i++)
        if (b[i] == b[i - 1])
    {
        ans.pb(L());
        ans.pb(R());
        used[L()] = used[R()] = 1;
    } else
    if (b[i] > b[i - 1])
    {
        ans.pb(R());
        used[R()] = 1;
        if (!used[b[i]])
        {
            ans.pb(b[i]);
            used[b[i]] = 1;
        } else
        {
            ans.pb(R());
            used[R()] = 1;
        }
    } else
    {
        ans.pb(L());
        used[L()] = 1;
        if (!used[b[i]])
        {
            ans.pb(b[i]);
            used[b[i]] = 1;
        } else
        {
            ans.pb(L());
            used[L()] = 1;
        }
    }
    for (auto u : ans) cout << u << ' ';
    return 0;
}

Compilation message (stderr)

medians.cpp: In function 'int32_t main()':
medians.cpp:32:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         freopen(TASKNAME".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
medians.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         freopen(TASKNAME".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...