题解:AT_arc182_a [ARC182A] Chmax Rush!
题目传送门
思路
我们只需要枚举每一个
-
p_i = p_j -
p_i < p_j -
p_i > p_j
当
当
而当
对于每一个
代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
int p[1000000],v[1000000];
int hh[6000][5];
int main()
{
ios::sync_with_stdio(false);
cin.tie(),cout.tie();
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>p[i]>>v[i];
for(int i=1;i<=m;i++)
hh[i][1]=hh[i][2]=1;
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;j++)
{
if(v[i]>v[j])
{
if(p[j]>p[i])
{
hh[i][2]=0;
hh[j][1]=0;
}
if(p[j]<p[i])
{
hh[i][1]=0;
hh[j][2]=0;
}
if(p[j]==p[i])
{
cout<<0;
return 0;
}
}
}
}
int ans=1;
for(int i=1;i<=m;i++)
{
ans*=(hh[i][1]+hh[i][2]);
ans%=998244353;
}
cout<<ans;
return 0;
}