QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#689062 | #6433. Klee in Solitary Confinement | Starrykiller | WA | 0ms | 3812kb | C++23 | 1.7kb | 2024-10-30 15:07:38 | 2024-10-30 15:07:38 |
Judging History
answer
// Homura Akemi a.k.a. Starrykiller (/user/235125)
// I love Madoka Kaname forever!
#include <bits/stdc++.h>
using namespace std;
template<typename L, typename R>
auto range(L l, R r) { return views::iota(l,r); }
auto rev=views::reverse;
template<typename T>
_GLIBCXX_ALWAYS_INLINE void chmax(T &a, T b) { a=max(a,b); }
template<typename T>
_GLIBCXX_ALWAYS_INLINE void chmin(T &a, T b) { a=min(a,b); }
// #define int long long
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
int n, k; cin>>n>>k;
vector<int> a(n); for (auto &i: a) cin>>i;
map<int,vector<int>> pos;
for (auto i: range(0,n)) pos[a[i]].push_back(i);
int ans=0;
for (const auto& [u,v]: pos) ans=max(ans,(int)size(v));
auto work=[&](vector<int> a, vector<int> b) {
vector<int> pos;
auto ia=begin(a), ib=begin(b);
while (ia!=end(a)&&ib!=end(b)) {
if (*ia<*ib) pos.push_back(1), ia++;
else pos.push_back(0), ib++;
}
while (ia!=end(a)) pos.push_back(1), ia++;
while (ib!=end(b)) pos.push_back(0), ib++;
int n=size(pos); pos.insert(begin(pos),0);
vector<int> pre1(n+1), pre0(n+1);
for (int i=1; i<=n; ++i) {
pre1[i]=pre1[i-1]+(pos[i]==1);
pre0[i]=pre0[i-1]+(pos[i]==0);
}
int mx=-1e18, ans=0;
for (int i=1; i<=n; ++i) {
chmax(mx,pre1[i-1]-pre0[i-1]);
chmax(ans,pre1[n]-pre1[i]+pre0[i]+mx);
}
return ans;
};
for (const auto& [u,v]: pos) if (pos.contains(u+k)) ans=max(ans,work(pos[u+k],pos[u]));
cout<<ans<<'\n';
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3812kb
input:
5 2 2 2 4 4 4
output:
5
result:
ok 1 number(s): "5"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3504kb
input:
7 1 3 2 3 2 2 2 3
output:
6
result:
ok 1 number(s): "6"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3652kb
input:
7 1 2 3 2 3 2 3 3
output:
5
result:
ok 1 number(s): "5"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
9 -100 -1 -2 1 2 -1 -2 1 -2 1
output:
3
result:
ok 1 number(s): "3"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
200 121649 0 527189 -1000000 -306471 -998939 527189 -1000000 -1000000 0 527189 0 527189 0 527189 -306471 -998939 -306471 -306471 -306471 0 0 527189 527189 1000000 527189 -1000000 1000000 648838 -1000000 -998939 -998939 -998939 0 1000000 -1000000 -998939 527189 1000000 648838 -1000000 1000000 648838 ...
output:
37
result:
ok 1 number(s): "37"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
200 -454379 -385892 454379 -1000000 373644 -665078 -1000000 -1000000 454379 0 1000000 373644 -1000000 1000000 -385892 -1000000 373644 0 -665078 0 -665078 -1000000 -665078 -385892 -665078 -385892 454379 -665078 -385892 -1000000 454379 1000000 -385892 373644 454379 -1000000 -385892 -1000000 -385892 -1...
output:
40
result:
ok 1 number(s): "40"
Test #7:
score: -100
Wrong Answer
time: 0ms
memory: 3784kb
input:
200 0 451272 -1000000 677452 677452 0 18908 451272 677452 -233144 677452 451272 18908 -1000000 18908 -1000000 0 451272 0 -233144 677452 1000000 451272 1000000 18908 -1000000 0 -233144 451272 1000000 18908 677452 0 677452 0 677452 1000000 -233144 18908 451272 -1000000 -233144 18908 1000000 0 0 -23314...
output:
36
result:
wrong answer 1st numbers differ - expected: '35', found: '36'