QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#357728 | #3300. Cactus Competition | wdnmdwrnmmp | WA | 1ms | 5644kb | C++14 | 1.1kb | 2024-03-19 09:40:33 | 2024-03-19 09:40:33 |
Judging History
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'