QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#689062#6433. Klee in Solitary ConfinementStarrykillerWA 0ms3812kbC++231.7kb2024-10-30 15:07:382024-10-30 15:07:38

Judging History

你现在查看的是最新测评结果

  • [2024-10-30 15:07:38]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3812kb
  • [2024-10-30 15:07:38]
  • 提交

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'