题目链接
题目描述
小红喜欢浏览论坛。论坛的每个贴子能被浏览者点赞或反对。假设点赞数为 ,反对数为
,当
时,小红喜欢阅读的贴子。
现在有 个贴子,给出每个帖子的点赞数和反对数,问小红喜欢阅读其中多少个帖子?
输入:
- 第一行输入两个整数
和
- 接下来
行每行输入两个整数,代表每个帖子的点赞数和反对数
输出:
- 输出一个整数,表示小红喜欢阅读的帖子数量
解题思路
这是一个简单的模拟问题,可以通过以下步骤解决:
-
关键发现:
- 对于每个帖子,只需要判断
- 统计满足条件的帖子数量即可
- 对于每个帖子,只需要判断
-
解题策略:
- 读入每个帖子的点赞数和反对数
- 判断是否满足
的条件
- 累计满足条件的帖子数量
-
具体步骤:
- 读入
和
- 遍历每个帖子
- 判断条件并计数
- 读入
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, x;
cin >> n >> x;
int ans = 0;
for(int i = 0; i < n; i++) {
int a, b;
cin >> a >> b;
if(abs(a - b) >= x) {
ans++;
}
}
cout << ans << endl;
return 0;
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int x = sc.nextInt();
int ans = 0;
for(int i = 0; i < n; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
if(Math.abs(a - b) >= x) {
ans++;
}
}
System.out.println(ans);
}
}
n, x = map(int, input().split())
ans = 0
for _ in range(n):
a, b = map(int, input().split())
if abs(a - b) >= x:
ans += 1
print(ans)
算法及复杂度
- 算法:模拟
- 时间复杂度:
- 需要遍历每个帖子一次
- 空间复杂度:
- 只需要常数空间存储变量
注意:
- 需要使用绝对值函数判断点赞数和反对数的差值
- 不需要存储所有帖子的信息,可以边读边处理
- 注意输入输出格式的处理