求助,P5661
  • 板块灌水区
  • 楼主Gartjock
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/10 18:23
  • 上次更新2024/7/10 20:15:24
查看原帖
求助,P5661
1352943
Gartjock楼主2024/7/10 18:23
#include<bits/stdc++.h>
using namespace std;
struct node{
    int t,m;
};
node a[100000000],b[100000000];
int main(){
	int n,f,k=0,g=0,ans=0,d=0;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>f;
		if(f==0){
		    cin>>a[k].m>>a[k].t;
		    ans+=a[k].m;  
		    k++;
		}
		if(f==1){
			cin>>b[g].m>>b[g].t;
			g++;
		}
	}
	for(int i=0;i<g;i++){
		d=1;
		while(1){ 
			if(d>k){
				ans+=b[i].m;
				break;
			}
			if((b[i].t>a[d].t+45||a[d].m<b[i].m)&&d==k){
				ans+=b[i].m;
				break;
			}
			else if((b[i].t-a[d].t>=0)&&(b[i].t-a[d].t<=45)&&(a[d].m>=b[i].m)){
			    for(int j=d;j<k;j++){
				    a[j].m=a[j+1].m;
				    a[j].t=a[j+1].t;
				}
				k--;
				break;
		 	}
			else{
			    d++;
				continue;
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/7/10 18:23
加载中...