违规紫衫
3 -100 -200 -300 601 5 -200 -300 1000 -100 -100 501 欢迎来到哈利·波兔的世界,初来乍到,哈利·波兔给大家准备了两份礼物,第一份礼物是 n 个咒语,存 放在 a 数组中,第 i 个咒语的能量强度是 a[i] ,第二份礼物是 m 瓶药水,存放在 b 数组中,第 j 瓶药水 的能量强度是 b[j] 。 此时你的手中有一个检测器,检测器能够检测咒语跟药水的组合的能量强度是否合格。如果一个咒语的 能量强度 * 一瓶药水的能量强度 大于等于 检测器的最低限制 t, 那么就认为这一对组合是一对合格的组 合。 请你检测每一种组合,并输出每个咒语可以合格的组合数目, 共输出 n 个结果
共四行,第一行是 n 和 m 两个值。 第二行输入检测器的最低限制 t 变量。 第三行共输入 n 个整数,分别表示每个咒语的能量强度。 第四行共输入m个整数,分别表示每个药水的能量强度。
输出只有一行,共 n 个数字,分别表示能跟第 i 个咒语成功组合的药水数目,以空格分隔输出。
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,a[100005],b[100005],c[100005];
long long t;
int main(){
cin>>n>>m>>t;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=m;i++)
cin>>b[i];
sort(a+1,a+n+1);
sort(b+1,b+m+1);
// for(int i=1;i<=n;i++)
// cout<<a[i]<<" ";
// for(int i=1;i<=m;i++)
// cout<<b[i]<<" ";
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
// cout<<j<<" ";
if(a[i]*b[j]*1ll>=t) c[i]++;
else break;
}
}
//cout<<endl;
for(int i=1;i<=n;i++)
cout<<c[i]<<" ";
return 0;
}
目前感觉是没法循环 j 次,但是不知道为啥,可能犯了些弱智错误qwq
会超时的这是暴力,正解不知道咋写qwq