CodeForces 222D - Olympiad

时间:2024-01-05 20:24:26

第一行给出两个个数字k和n,第二三行分别有k个数字,求将第二、三行之间的数字相互组合,求最多有多少个组合的和不小于n

纯粹暴力

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int n,x;
int s1[],s2[];
int main()
{
scanf("%d%d",&n,&x);
for(int i=;i<n;i++) scanf("%d",&s1[i]);
for(int i=;i<n;i++) scanf("%d",&s2[i]);
sort(s1,s1+n);
sort(s2,s2+n);
int i,j=;
for(i=n-;i>=;i--)
{
while(x>s1[i]+s2[j])
{
j++;
if(j>=n) break;
}
if(j>=n) break;
j++;
}
printf("1 %d\n",n-i-);
}