省流:
初始位置小于零号感染者的人要想不被感染,其速度只能小于等于右边所有人的最小速度。
初始位置大于零号感染者的人要想不被感染,其速度只能大于等于左边所有人的最大速度。
看个题解还要付费? 不如自己发个免费的
代码
#include<bits/stdc++.h>
using namespace std;
int n,k,ans=0;
vector<int> s;
vector<int> v;
int main()
{
cin>>n>>k;
k--;
s.resize(n);
v.resize(n);
for(int i=0; i<n; i++)
{
cin>>s[i];
}
for(int i=0; i<n; i++)
{
cin>>v[i];
}
//先找临界
int min_v=v[k];
int max_v=v[k];
for(int i=0; i<n; i++)
{
if( s[i]==s[k] )
{
min_v = min( min_v, v[i] );
max_v = max( max_v, v[i] );
ans++;
}
if( s[i]>s[k] )
{
min_v = min( min_v, v[i] );
}
if( s[i]<s[k] )
{
max_v = max( max_v, v[i] );
}
}
//统计个数
for(int i=0; i<n; i++)
{
if( s[i]>s[k] && v[i]<max_v ) ans++;
if( s[i]<s[k] && v[i]>min_v ) ans++;
}
cout<<ans;
return 0;
}
/*2023届拔尖班入学考第一题
gpt3.5写不出来*/