A. Rudolf and the Ticket

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Rudolf is going to visit Bernard, and he decided to take the metro to get to him. The ticket can be purchased at a machine that accepts exactly two coins, the sum of which does not exceed k�.

Rudolf has two pockets with coins. In the left pocket, there are n� coins with denominations b1,b2,...,bn�1,�2,...,��. In the right pocket, there are m� coins with denominations c1,c2,...,cm�1,�2,...,��. He wants to choose exactly one coin from the left pocket and exactly one coin from the right pocket (two coins in total).

Help Rudolf determine how many ways there are to select indices f� and s� such that bf+cs≤k��+��≤�.

Input

The first line contains an integer t� (1≤t≤1001≤�≤100) --- the number of test cases. Then follows the description of each test case.

The first line of each test case contains three natural numbers n�, m�, and k� (1≤n,m≤100,1≤k≤20001≤�,�≤100,1≤�≤2000) --- the number of coins in the left and right pockets, and the maximum sum of two coins for the ticket payment at the counter, respectively.

The second line of each test case contains n� integers bi�� (1≤bi≤10001≤��≤1000) --- the denominations of coins in the left pocket.

The third line of each test case contains m� integers ci�� (1≤ci≤10001≤��≤1000) --- the denominations of coins in the right pocket.

Output

For each testcase, output a single integer --- the number of ways Rudolf can select two coins, taking one from each pocket, so that the sum of the coins does not exceed k�.

Example

input

Copy

复制代码

4

4 4 8

1 5 10 14

2 1 8 1

2 3 4

4 8

1 2 3

4 2 7

1 1 1 1

2 7

3 4 2000

1 1 1

1 1 1 1

output

Copy

复制代码
6
0
4
12

Note

Note that the pairs indicate the indices of the coins in the array, not their denominations.

In the first test case, Rudolf can choose the following pairs of coins: [1,1],[1,2],[1,4],[2,1],[2,2],[2,4][1,1],[1,2],[1,4],[2,1],[2,2],[2,4].

In the second test case, Rudolf cannot choose one coin from each pocket in any way, as the sum of any two elements from the first and second arrays will exceed the value of k=4�=4.

In the third test case, Rudolf can choose: [1,1],[2,1],[3,1],[4,1][1,1],[2,1],[3,1],[4,1].

In the fourth test case, Rudolf can choose any coin from the left pocket and any coin from the right pocket.

解题说明:水题,两个数列每次取一个数相加,遍历判断是否小于k即可。

cpp 复制代码
#include<stdio.h>
int main() 
{
	int p;
	scanf("%d", &p);
	while (p--) 
	{
		int n, m, k, count = 0;
		scanf("%d%d%d", &n, &m, &k);
		int a[102], b[102];
		for (int i = 0; i < n; i++)
		{
			scanf("%d", &a[i]);
		}
		for (int i = 0; i < m; i++)
		{
			scanf("%d", &b[i]);
		}
		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < m; j++) 
			{
				if (a[i] + b[j] <= k)
				{
					count++;
				}
			}
		}
		printf("%d\n", count);
	}
	return 0;
}
相关推荐
爱吃橘的橘猫5 分钟前
嵌入式系统与嵌入式 C 语言(2)
c语言·算法·嵌入式
235168 分钟前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展
weixin_307779131 小时前
使用Python高效读取ZIP压缩文件中的UTF-8 JSON数据到Pandas和PySpark DataFrame
开发语言·python·算法·自动化·json
柳安忆1 小时前
【论文阅读】Sparks of Science
算法
web安全工具库2 小时前
从课堂笔记到实践:深入理解Linux C函数库的奥秘
java·数据库·算法
爱编程的鱼3 小时前
C# 变量详解:从基础概念到高级应用
java·算法·c#
HalvmånEver4 小时前
红黑树实现与原理剖析(上篇):核心规则与插入平衡逻辑
数据结构·c++·学习·算法·红黑树
哆啦刘小洋4 小时前
T:堆的基本介绍
算法
AresXue4 小时前
你是否也在寻找二进制和字符串的高效转换算法?
算法
Swift社区5 小时前
从 0 到 1 构建一个完整的 AGUI 前端项目的流程在 ESP32 上运行
前端·算法·职场和发展