初级启示者
求思路!!!
熊潇然在2022-09-27 13:12:51追加了内容
@万睿言
#include<bits/stdc++.h>
using namespace std;
int n,cnt,sum,k,a[100005],b[100005];
struct f{
int x,p,t;
}s[100005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].x>>s[i].p>>s[i].t;
if(!s[i].x){
sum+=s[i].p;
cnt++;
k++;
a[k]=s[i].t;
b[k]=s[i].p;
}else{
bool f=0;
if(cnt==0) continue;
for(int j=1;j<=k;j++){
if(s[i].t-a[j]<=45&&s[i].p<=b[j]){
cnt--;
f=1;
break;
}
}
if(!f){
sum+=s[i].p;
}
}
}
cout<<sum;
return 0;
}
Wrong Answer 0分
这一题要用 滑动窗口
不这样啊?
熊潇然在2022-09-27 13:14:27追加了内容
4422 题目传送门
初级光能
用一个数组来装所有的收集到的赠票。每当坐地铁的时候,就直接花钱,然后获得一张赠票,放到数组里面。每当坐公交的时候,看看数组里面有没有时间合适,价格小于现在公交票价的赠票,并且没用过的赠票,直接用时间最早的那一张就可以了