原题链接
题目
某公司打算举办一场会议。
会议于 77 月 1111 日截止缴费报名(当天仍可报名),在 66 月 2020 日及以前缴费的参会者可享受早鸟价,仅需缴纳 18001800 元;66 月 2020 日之后缴费的参会者需缴纳 20002000 元。
现在给定若干个参会者的缴费时间,请你确认每位参会者是否缴纳了正确的金额。
输入格式
输入第一行是一个正整数 N,表示有 N 位参会者的缴费信息。
接下来有 N行,每行三个用一个空格隔开的正整数 M,D,C表示一位参会者于 M 月 D 日缴纳了 C 元。
输出格式
对于每位参会者的缴费记录,你需要根据情况对应地输出:
- 如果参会者太迟缴费,无论是否符合要求,均输出
Too late!
。 - 否则,如果参会者缴纳的金额不够,输出
Need more!
。 - 否则,如果参会者缴纳了太多的金额,输出
^_^
。 - 否则,如果参会者缴纳了正确的金额,输出
Ok!
。
输入数据的日期保证与会议在同一年内。
数据范围
1≤N≤500,
3≤M≤12,
1≤D≤30,
1≤C≤5000
输入样例:
6
6 20 2000
6 20 1800
6 20 1700
6 21 1800
7 11 2000
7 12 2500
输出样例:
^_^
Ok!
Need more!
Need more!
Ok!
Too late!
这是一道很水的模拟题
要解决这个问题,我们需要判断每位参会者的缴费是否符合会议的规定,包括缴费时间是否在截止日期内以及缴费金额是否正确。
分析问题
1.缴费截止日期为 7 月 11 日(当天仍可报名),之后缴费视为太迟
2.6 月 20 日及以前缴费为早鸟价 1800 元
3.6 月 20 日之后、7 月 11 日及之前缴费为 2000 元
代码逻辑说明:
1.先判断缴费时间是否在截止日期之后(7 月 11 日之后),如果是则输出 "Too late!"
2.对于未逾期的情况,根据缴费日期判断适用价格:
6 月 20 日及之前(包括 6 月 20 日)适用早鸟价 1800 元
6 月 20 日之后到 7 月 11 日及之前适用正常价 2000 元
3.最后根据实际缴纳金额与应缴金额的比较,输出相应结果
这个程序能够正确处理所有测试用例,包括输入样例中的各种情况。
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
int m,d,c;
cin>>m>>d>>c;
if(m>7 || m==7 && d>11) cout<<"Too late!"<<endl;
else {
int need;
if(m<6 || m==6 && d<=20) need=1800;
else need=2000;
if(c<need) cout<<"Need more!"<<endl;
else if(c>need) cout<<"^_^"<<endl;
else cout<<"Ok!"<<endl;
}
}
return 0;
}