求助
  • 板块灌水区
  • 楼主_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 个结果

输入格式

共四行,第一行是 nn 和 mm 两个值。

第二行输入检测器的最低限制 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
加载中...