#P1499. 第2题-小红购物
          
                        
                                    
                      
        
              - 
          
          
                      1000ms
            
          
                      Tried: 85
            Accepted: 64
            Difficulty: 2
            
          
          
          
                       所属公司 : 
                              京东
                                
            
                        
              时间 :2023年8月26日
                              
                      
          
 
- 
                        算法标签>模拟          
 
第2题-小红购物
思路:模拟
按照题意模拟即可 复杂度:O(n)
代码
C++
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;
int main()
{
	int n;
	cin >> n;
	vector<int>a(n), b(n), c(n), d(n);
	for (int i = 0; i < n; i++)cin >> a[i];
	for (int i = 0; i < n; i++)cin >> b[i];
	for (int i = 0; i < n; i++)cin >> c[i];
	for (int i = 0; i < n; i++)cin >> d[i];
	int cnt = 0;
	for (int i = 0; i < n; i++)
	{
		if (a[i] > b[i] && c[i] < d[i])
			++cnt;
		if (b[i] > a[i] && d[i] < c[i])
			++cnt;
	}
	cout << cnt << endl;
	return 0;
}
Java
import java.util.Scanner;
import java.util.Set;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()){
            int n = scanner.nextInt();
            int[] A = new int[n];
            int[] B = new int[n];
            int[] C = new int[n];
            int[] D = new int[n];
            for (int i = 0; i < n; i++) {
                A[i] = scanner.nextInt();
            }
            for (int i = 0; i < n; i++) {
                B[i] = scanner.nextInt();
            }
            for (int i = 0; i < n; i++) {
                C[i] = scanner.nextInt();
            }
            for (int i = 0; i < n; i++) {
                D[i] = scanner.nextInt();
            }
            int count = 0;
            for (int i = 0; i < n; i++) {
                if (A[i] > B[i] && C[i] < D[i]){
                    count++;
                }else if(B[i] > A[i] && D[i] < C[i]){
                    count++;
                }else{
                    continue;
                }
            }
            System.out.println(count);
        }
    }
}
Python
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
c = list(map(int, input().split()))
d = list(map(int, input().split()))
ans = 0
for i in range(n):
    if a[i] > b[i] and c[i] < d[i]:
        ans += 1
    elif b[i] > a[i] and d[i] < c[i]:
        ans += 1
print(ans)
        题目内容
小红很喜欢购物,但是他买的东西都要求有极致的性价比。现在他看上了 n 种物品,恰好这 n 种物品在 A 商店和 B 商店都有售卖。
对于小红来说,如果商品 i 在 A 商店的质量 Ai 高于在 B 商店的质量 Bi,并且商品 i 在 A 商店的价格 Ci 低于在 B 商店的价格 Di ,则他会在 A 商店购买商品 i ,否则如果 Bi>Ai 且 Di<Ci ,则他会在 B 商店购买商品 i ,否则他不会购买商品 i 。
现在小红问你,他看上的 n 种商品,最终他会购买多少个。
输入描述
第一行,一个整数 n(1≤n≤105) ,表示商品的种类数。
第二行,一个长度为 n 的数组 A ,Ai(1≤Ai≤109) 表示商品 i 在 A 商店的物品质量。
第三行,一个长度为 n 的数组 B ,Bi(1≤Bi≤109) 表示商品 i 在 B 商店的物品质量。
第四行,一个长度为 n 的数组 C ,Ci(1≤Ci≤109) 表示商品 i 在 A 商店的物品价格。
第五行,一个长度为 n 的数组 D ,Di(1≤Di≤109) 表示商品 i 在 B 商店的物品价格。
输出描述
一个整数,表示小红最终购买的商品数。
样例
输入
5
1 2 3 4 5
5 4 3 2 1
10 9 8 7 6
6 7 8 9 10
输出
4
说明
对于第 1 种商品,B1>A1 且 D1<C1 ,购买 B 商店的
对于第 2 种商品,B2>A2 且 D2<C2 ,购买 B 商店的
对于第 3 种商品,B3=A3 且 D3=C3 ,不购买任意一个商店的
对于第 4 种商品,B4<A4 且 D4>C4 ,购买 A 商店的
对于第 5 种商品,B5<A5 且 D5>C5 ,购买 A 商店的