求助
  • 板块灌水区
  • 楼主_UniqueGirl_
  • 当前回复18
  • 已保存回复18
  • 发布时间2024/10/14 15:47
  • 上次更新2024/10/14 19:39:14
查看原帖
求助
720872
_UniqueGirl_楼主2024/10/14 15:47

违规紫衫


题目描述

欢迎来到哈利·波兔的世界,初来乍到,哈利·波兔给大家准备了两份礼物,第一份礼物是 nn 个咒语,存 放在 aa 数组中,第 ii 个咒语的能量强度是 a[i]a[i] ,第二份礼物是 mm 瓶药水,存放在 bb 数组中,第 jj 瓶药水的能量强度是 b[j]b[j]

此时你的手中有一个检测器,检测器能够检测咒语跟药水的组合的能量强度是否合格。如果一个咒语的 能量强度乘一瓶药水的能量强度 大于等于 检测器的最低限制 tt, 那么就认为这一对组合是一对合格的组 合。

请你检测每一种组合,并输出每个咒语可以合格的组合数目, 共输出 nn 个结果

输入格式

共四行,第一行是 nnmm 两个值。

第二行输入检测器的最低限制 tt 变量。

第三行共输入 nn 个整数,分别表示每个咒语的能量强度。

第四行共输入 mm 个整数,分别表示每个药水的能量强度。

输出格式

输出只有一行,共 nn 个数字,分别表示能跟第 ii 个咒语成功组合的药水数目,以空格分隔输出。


代码:

#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循环不了m次,但不知道为啥,可能犯了写弱智错误轻骂qwq

这是暴力,正解不知道咋写了qwq

2024/10/14 15:47
加载中...