QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#357728#3300. Cactus CompetitionwdnmdwrnmmpWA 1ms5644kbC++141.1kb2024-03-19 09:40:332024-03-19 09:40:33

Judging History

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

  • [2024-03-19 09:40:33]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5644kb
  • [2024-03-19 09:40:33]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
// #define int long long
#define rep(i,j,k) for(int i=(j);i<=(k);i++)
#define per(i,j,k) for(int i=(j);i>=(k);i--)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
typedef vector<int> vi;
typedef pair<int,int> pi;

const int N=2e5+5;
int n,m,a[N],b[N];
int s[N][2];
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	
	cin>>n>>m;
	rep(i,1,n){
		cin>>a[i];
	}
	rep(i,1,m){
		cin>>b[i];
	}
	int mn=*min_element(b+1,b+m+1);
	
	vi stk;
	rep(i,1,n){
		int ls=0;
		while(!stk.empty() && a[stk.back()]<=a[i]){
			ls=stk.back();
			stk.pop_back();
		}
		if(!stk.empty()){
			s[stk.back()][1]=i;
		}
		s[i][0]=ls;
		stk.pb(i);
	}
	long long ans=0;
	auto dfs=[&](auto self,int u,int L,int R)->void{
		if(!u){
			return;
		}
		if(mn+a[u]<0){
			return;
		}
		int le=u,ri=u;
		while(le>L && a[le-1]+b[1]>=0){
			le--;
		}
		while(ri<R && a[ri+1]+b[m]>=0){
			ri++;
		}
		ans+=(long long)(ri-u+1)*(u-le+1);
		self(self,s[u][0],L,u-1);
		self(self,s[u][1],u+1,R);
	};
	dfs(dfs,stk.back(),1,n);
	cout<<ans<<'\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3552kb

input:

3 3
-1 0 1
-1 0 1

output:

1

result:

ok single line: '1'

Test #2:

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

input:

3 3
-1 0 1
1 0 1

output:

5

result:

ok single line: '5'

Test #3:

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

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: 1ms
memory: 5592kb

input:

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

output:

0

result:

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