关于我在洛谷上出题自己差点不会写这件事...
自己出的题目,大佬勿喷:
U236471 小Z不高兴
https://www.luogu.com.cn/problem/U236471

题目背景
来自小Z(和在坐的各位)の无奈...
题目描述
小Z有着n天的魔鬼训练,期间小Z的妈妈不停的让小Z补课,小Z补课超过3小时,他的不高兴值就会增加超过3小时的部分。但小Z每天会有c个小时的编程课时间,如果小Z的编程课时间小于4小时且大与0小时,则当天小Z不管如何都不会不开兴(unhappy==0),如果超过了4小时(不包括4小时),小Z的妈妈每隔一小时就会来催小Z去写作业,小Z就会不耐烦,超过的部分就会加入他的不高兴值里(unhappy+=c-4)。
此时,小Z找到了你,希望你可以帮他发消息去提醒她(小Z不敢),顺便告诉她当天的不高兴值。因为你是小Z的好朋友,所以,你想n天之后再来统计一下是否要提醒(见输出格式)和当天的不高兴值。
输入格式
输入共n+1行,先输入n,为魔鬼训练的天数。
再输入小Z补课的时间和上编程课的时间,分别以空格隔开。
输出格式
输出共n+1行,先输出要提醒的次数。
后n行分别为是否需要提醒小Z的妈妈(是为1,不是为0)和当天的不高兴值,分别以空格隔开。
输入输出样例
输入 #1
2
2 0
5 1
输出 #1
0
0 0
0 0
输入 #2
3
2 5
4 5
5 3
输出 #2
2
1 1
1 2
0 0
说明/提示
n>0&&n<=100;
c>=0&&c<=20;
b>=0&&b<=20;

说一句,这题的难度无疑是在输出共n+1行,先输出要提醒的次数。
所以,这题这题只能另开数组进行判断:
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
long long n,h[101],a[101],ans,b[101],j[101],i;
int main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i]>>b[i];
h[i]=0;
}
for(i=1;i<=n;i++){
if(a[i]>3){
h[i]+=a[i]-3;
}
if(b[i]>0&&b[i]<=4){
h[i]=0;
}else if(b[i]>4){
h[i]+=b[i]-4;
}
if(h[i]>0){
ans++;
j[i]=1;
}else{
j[i]=0;
}
}
cout<<ans<<endl;
for(i=1;i<=n;i++){
cout<<j[i]<<" "<<h[i]<<endl;
}
return 0;
}
(此代码因哔哩哔哩压缩排版有所改变)
代码链接:
https://www.luogu.com.cn/paste/buzftdoj
蒟蒻希望大家可以做做啊