QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#390749#3765. Make Rounddog *Very* Happyucup-team1251WA 1240ms23772kbC++171.1kb2024-04-15 21:05:272024-04-15 21:05:28

Judging History

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

  • [2024-04-15 21:05:28]
  • 评测
  • 测评结果:WA
  • 用时:1240ms
  • 内存:23772kb
  • [2024-04-15 21:05:27]
  • 提交

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 '