| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1354978 | mxhrvs | Gift Boxes (EGOI25_giftboxes) | C++20 | 91 ms | 16068 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll rx, lx;
ll r, l;
void check() {
if (rx - lx < r - l) {
r = rx;
l = lx;
}
}
int main() {
ll t, n;
cin >> t >> n;
l = 0;
r = n - 1;
vector<ll> suff(t + 1, -1), pref(t + 1, -1), cnt(t + 1, 0);
vector<ll> a(n);
for (ll i = 0; i < n; i++) {
cin >> a[i];
if (pref[a[i]] == -1) pref[a[i]] = i;
suff[a[i]] = i;
}
ll mxl = 0;
for (ll i = 0; i < n; i++) {
if (cnt[a[i]] != 0) break;
cnt[a[i]]++;
mxl++;
}
fill(cnt.begin(), cnt.end(), 0);
ll mxr = n - 1;
for (ll i = n - 1; i >= 0; i--) {
if (cnt[a[i]] != 0) break;
cnt[a[i]]++;
mxr--;
}
rx = mxr;
lx = 0;
rx = mxr;
for (ll i = 0; i < mxl; i++) {
lx = i + 1;
rx = max(rx, (ll)suff[a[i]]);
if(rx >= n) rx = n - 1;
check();
}
lx = mxl;
for (ll i = n - 1; i > mxr; i--) {
rx = i - 1;
lx = min(lx, (ll)pref[a[i]]);
if(lx < 0) lx = 0;
check();
}
if (mxl == n) {
cout << "0 0" << endl;
} else {
cout << l << " " << r << endl;
}
return 0;
}| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
