QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#180793 | #6433. Klee in Solitary Confinement | linnins | WA | 12ms | 51992kb | C++20 | 1.3kb | 2023-09-16 12:51:51 | 2023-09-16 12:51:52 |
Judging History
answer
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
const int N = 2e6 + 5;
const int M = 1e6 + 3;
priority_queue <int> q;
vector <int> a[N];
int line[N],exsum[N];
int n,k,x,ans;
int main()
{
scanf("%d%d",&n,&k);
for(int i = 1;i <= n;i ++)
{
scanf("%d",&x);
a[x + M].push_back(i);
ans = max(ans,(int)a[x + M].size());
}
for(int i = 0;i < N;i ++)
{
if(i + k >= 0 && i + k < N && a[i].size() > 0 && a[i + k].size() > 0)
{
int cnt1 = 0,cnt2 = 0,cnt = 0;
while(!q.empty())
q.pop();
while(cnt1 < a[i].size() && cnt2 < a[i + k].size())
{
if(a[i][cnt1] < a[i + k][cnt2])
{
line[++ cnt] = 1;
cnt1 ++;
}
else
{
line[++ cnt] = 2;
cnt2 ++;
}
}
while(cnt1 < a[i].size())
{
line[++ cnt] = 1;
cnt1 ++;
}
while(cnt2 < a[i + k].size())
{
line[++ cnt] = 2;
cnt2 ++;
}
exsum[0] = 0;
for(int j = 1;j <= cnt;j ++)
{
if(line[j] == 1) exsum[j] = exsum[j - 1] + 1;
else exsum[j] = exsum[j - 1] - 1;
}
for(int j = cnt;j >= 0;j --)
{
q.push(exsum[j]);
ans = max(ans,q.top() - exsum[j] + (int)a[i + k].size());
}
}
}
printf("%d",ans);
}
详细
Test #1:
score: 100
Accepted
time: 10ms
memory: 51136kb
input:
5 2 2 2 4 4 4
output:
5
result:
ok 1 number(s): "5"
Test #2:
score: 0
Accepted
time: 12ms
memory: 51368kb
input:
7 1 3 2 3 2 2 2 3
output:
6
result:
ok 1 number(s): "6"
Test #3:
score: 0
Accepted
time: 12ms
memory: 51992kb
input:
7 1 2 3 2 3 2 3 3
output:
5
result:
ok 1 number(s): "5"
Test #4:
score: 0
Accepted
time: 12ms
memory: 51452kb
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: 7ms
memory: 51656kb
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: 12ms
memory: 50968kb
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: 11ms
memory: 51896kb
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'