1 条题解
-
0
1950A - 楼梯、山顶,还是两者都不?详细题解
给定三个数字 ,,。判断它们是构成楼梯、山峰,还是两者都不是。
- 楼梯:满足
- 山峰:满足 且
输入格式
- 第一行一个整数 ,满足
- 接下来 行,每行三个整数 ,满足
输出格式
- 楼梯:输出
STAIR - 山峰:输出
PEAK - 都不是:输出
NONE
核心思路(标程思路)
本题只需要两个条件判断:
- 判断是否满足楼梯:
- 判断是否满足山峰:
- 否则输出
NONE
⚠ 注意: C++ 不支持链式比较
a < b < c,必须写成a < b && b < c。
标程公式(数学形式)
- 楼梯条件:
- 山峰条件:
完整可提交 AC 代码(C++)
#include <iostream> using namespace std; int main() { int t; cin >> t; while (t--) { int a, b, c; cin >> a >> b >> c; if (a < b && b < c) { cout << "STAIR\n"; } else if (a < b && b > c) { cout << "PEAK\n"; } else { cout << "NONE\n"; } } return 0; }
代码解释
- 读入测试用例数
- 循环 次:
- 读入
- 先判断是否楼梯:
a < b && b < c - 再判断是否山峰:
a < b && b > c - 否则输出
NONE
- 输出结果
复杂度
- 时间:
- 空间:
- 完全满足题目限制
样例验证
输入:
7 1 2 3 3 2 1 1 5 3 3 4 1 0 0 0 4 1 7 4 5 7输出:
STAIR NONE PEAK PEAK NONE NONE STAIR
标程总结(最重要)
- 只需要 2 个 if
- 必须用 && 连接比较式
- 顺序:先判断楼梯,再判断山峰
- 其余情况输出
NONE
- 1
信息
- ID
- 7138
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者