题目传送门
思路
这题的思路就是枚举每一天看一下需要多少人,因为一个人不会用两个人的额,所以我们只需要把每天需要的人数取最大值就可以了。
ps:这题要开大空间,否则会 WA 。
代码
#include<bit/stdc++.h>
using namespace std;
int n,m,d,p,time;
int ans;
int k[13]={0,0,31,59,90,120,151,181,212,243,273,304,334};
int t[1005];
void solve(int m,int d,int p,int time){
int st=k[m]+d-time+101;
int la=k[m]+d+100;
for(int j=st;j<=la;j++){
t[j]+=p;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>m>>d>>p>>time;
solve(m,d,p,time);
}
for(int i=101;i<=465;i++){
ans=max(ans,t[i]);
}
cout<<ans<<endl;
return 0;
}