QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#390749 | #3765. Make Rounddog *Very* Happy | ucup-team1251 | WA | 1240ms | 23772kb | C++17 | 1.1kb | 2024-04-15 21:05:27 | 2024-04-15 21:05:28 |
Judging History
answer
#include<cstdio>
#include<cstdio>
#include<cmath>
#include<queue>
#include<stack>
#include<string>
#include<cstring>
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<set>
#include<cmath>
#define pii pair<int,int>
using namespace std;
const int N = 1e6+10;
int q[N],a[N],l[N],r[N],c[N],cc[N];
int main()
{
int n,m;
while(cin>>n>>m)
{
for(int i=1;i<=n;++i)l[i]=0,r[i]=n+1,c[i]=cc[i]=0;
int top=0;
for(int i=1;i<=n;++i)
{
cin>>a[i];
while(top&&a[q[top]]<=a[i])top--;
if(top)l[i]=q[top];
q[++top]=i;
}
top=0;
for(int i=n;i>=1;--i)
{
while(top&&a[q[top]]<a[i])top--;
if(top)r[i]=q[top];
q[++top]=i;
}
for(int i=1;i<=n;++i)
{
int mx=max(0,a[i]-m),ml=i-l[i],mr=r[i]-i,mq=ml+mr-1;
if(mx>=mq)
{
c[i]+=ml;
c[i+mr]-=ml;
}
else if(mx<=ml)
{
c[i]+=mx;
cc[i+1]--;
if(mr>mx)
{
cc[i+max(mx,1)]++;
}
else cc[i+mr]++,c[i+mr]-=mx-mr+1;
}
else
{
c[i]+=ml;
cc[i+mx-ml+1]--;
cc[i+mx]++;
}
}
for(int i=1;i<=n;++i)
{
cc[i]+=cc[i-1];
c[i]+=c[i-1]+cc[i];
cout<<c[i]<<" ";
}
cout<<'\n';
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 1240ms
memory: 23772kb
input:
3 0 1 3 2 3 1 1 3 2 5 2 1 2 3 4 5 10 4 9 9 5 4 4 1 2 8 5 2 10 0 9 4 5 2 5 8 3 4 5 4 10 -2 5 10 10 3 6 6 10 2 4 5 10 0 1 10 2 5 8 3 7 2 2 3 10 8 10 1 4 8 8 4 2 1 6 2 10 -10 6 7 6 9 6 10 4 6 4 5 10 9 2 6 7 10 2 1 2 2 10 7 10 -6 8 9 2 10 7 2 1 8 6 1 10 8 6 10 2 8 1 7 8 8 8 9 10 -1 4 9 8 4 2 10 6 5 9 5 ...
output:
1 2 3 0 2 2 0 0 1 2 3 1 2 3 3 3 2 2 6 6 5 1 2 3 4 5 6 7 8 9 9 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 0 0 0 1 1 1 1 1 2 2 1 2 3 4 5 6 7 8 9 10 0 2 1 1 1 1 1 1 1 2 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 3 5 6 5 4 ...
result:
wrong answer 4th lines differ - expected: '1 2 3 2 2 1 0 4 4 2', found: '1 2 3 3 3 2 2 6 6 5 '