Step 1 题意理解
有 个同学参加了两场比赛,已知小
的成绩不小于
,求小
的最好成绩以及最坏成绩。
Step 2 解题思路
因为没有规定小 的成绩没有上限,所以小
的最好成绩绝对是第
名。
为了让小 的成绩最差
(小 ,就要使与他比赛的人分数尽可能高,所以我们只要先 :你值得吗?)
一遍,然后
枚举一遍。遇到高的便将最差成绩加一。(k?)
Step 3 AC Code
#include<bits/stdc++.h>
using namespace std;
long long a[100005],b[100005];
long long n,x,zui_xiao;
int main(){
scanf("%lld%lld",&n,&x);
long long m = n;
for(long long i = 1; i <= n; i++)scanf("%lld",&a[i]);
for(long long i = 1; i <= n; i++)scanf("%lld",&b[i]);
sort(a + 1,a + n + 1);
sort(b + 1,b + n + 1);
for(long long i = 1;i <= n;i++) if(a[i]+b[m]>=x) m--,zui_xiao++;
cout << 1 << " " << zui_xiao;
return 0;
}