QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#357732#3300. Cactus Competitionjinqihao2023WA 1ms7880kbC++141.4kb2024-03-19 10:04:462024-03-19 10:04:47

Judging History

This is the latest submission verdict.

  • [2024-03-19 10:04:47]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 7880kb
  • [2024-03-19 10:04:46]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,inf=2e9;
typedef long long ll;
int n,m,a[N],b[N],r[N],l[N],minn[N],k,num[N];
int main()
{
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=1;i<=m;i++)scanf("%d",&b[i]),b[i]=-b[i]-1;
	minn[0]=inf,k=1;for(int i=1;i<=m;i++)minn[i]=min(minn[i-1],b[i]);
	for(int i=2;i<=m;i++)if(b[i]<b[k])k=i;
	for(int i=1;i<=n;i++)
	{
		int now=0,fl=0;bool flag=0;
		for(int j=i;j<=n;j++)
		{
			while(now<k && a[i]>b[now+1])now++;
			if(now==k){fl=j;break;}
			if(a[i]<=minn[now]){fl=j;flag=1;break;}
		}
		if(flag){i=fl+1;continue;}
		r[i]=fl;
	}
	for(int i=n;i>=1;i--)
	{
		int now=m+1,fl=0;bool flag=0;
		for(int j=i;j>=1;j--)
		{
			while(now>k && a[i]>b[now-1])now--;
			if(now==k){fl=j;break;}
			if(a[i]<=minn[now]){fl=j;flag=1;break;}
		}
		if(flag){i=fl-1;continue;}
		l[i]=fl;
	}
	// for(int i=1;i<=n;i++)printf("%d %d\n",l[i],r[i]);
	vector<int>temp;
	temp.push_back(0);
	for(int i=1;i<=n;i++)if(a[i]<=b[k])temp.push_back(i);
	temp.push_back(n+1);
	int len=temp.size();
	ll ans=0;
	for(int i=0;i<len-1;i++)
	{
		int nl=temp[i]+1,nr=temp[i+1]-1;
		if(nl>nr)continue;
		for(int j=nl;j<=nr;j++)if(l[j]>=nl)num[l[j]]++;
		for(int j=nr-1;j>=nl;j--)num[j]+=num[j+1];
		for(int j=nl;j<=nr;j++)if(r[j]<=nr)ans+=num[r[j]];
	}
	printf("%lld\n",ans);
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 7876kb

input:

3 3
-1 0 1
-1 0 1

output:

1

result:

ok single line: '1'

Test #2:

score: 0
Accepted
time: 0ms
memory: 5804kb

input:

3 3
-1 0 1
1 0 1

output:

5

result:

ok single line: '5'

Test #3:

score: 0
Accepted
time: 1ms
memory: 7880kb

input:

10 10
145195799 312862766 143966779 -11056226 -503624929 636383890 -182650312 -382759112 -290767690 377894950
-845235881 -418232930 -600566938 -957917357 -181139226 125255273 -175406945 740226783 -750456842 325848662

output:

0

result:

ok single line: '0'

Test #4:

score: -100
Wrong Answer
time: 0ms
memory: 7880kb

input:

10 10
923415743 -503391272 885740174 329644337 -693052351 -53764994 731859967 -834732760 -57751504 151969590
553689579 313784278 -12090771 921222379 -378313551 819586787 -373658045 559813071 671861309 268258615

output:

2

result:

wrong answer 1st lines differ - expected: '13', found: '2'