满江红求调
查看原帖
满江红求调
1406173
ssdhnd楼主2024/9/25 22:16
#include<bits/stdc++.h>
using namespace std;
struct node{
	bool z;
	int t,p;
}a[100005],s[100005];
int top,n;
int topb(int c){
	int i,ans=a[c].p;
	for(i=1;i<=top;i++){
		if(a[c].t-s[i].t>45){
			top=i-1;
			break;
		}
		if(a[c].p<=s[i].p&&ans){
			ans=0;
			for(int j=i;j<top;j++){
				a[j]=a[j+1];
			}
			top--;
		}
	}
	return ans;
}
void tops(int c){
	for(int i=top;i>=1;i--){
		s[i+1]=s[i];
	}
	s[1]=a[c];
	top++;
}
int price(){
	int pr=0;
	for(int i=1;i<n;i++){
		if(a[i].z==0){
			pr+=a[i].p;
			tops(i);
		}
		else{
			pr+=topb(i);
		}
	}
	return pr;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i].z>>a[i].p>>a[i].t;
	}
	cout<<price(); 
    return 0;
}

样例二过了

2024/9/25 22:16
加载中...