QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#357732 | #3300. Cactus Competition | jinqihao2023 | WA | 1ms | 7880kb | C++14 | 1.4kb | 2024-03-19 10:04:46 | 2024-03-19 10:04:47 |
Judging History
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'