比赛 20200109 评测结果 ATTTTTTTTTTTT
题目名称 Meetings 最终得分 7
用户昵称 fmq03 运行时间 12.000 s
代码语言 C++ 内存使用 14.23 MiB
提交时间 2019-12-25 20:59:44
显示代码纯文本
#include<iostream>
#include<cstdio>

using namespace std;

int n,l,weight;
int sta[50001][2],we[50001];
int main(){
	freopen("meetings.in","r",stdin);
	freopen("meetings.out","w",stdout);
	cin>>n>>l;
	l*=2;//双倍化中点为顶点 
	for(int i=1;i<=n;++i){
		cin>>we[i];
		weight+=we[i];
		cin>>sta[i][0]>>sta[i][1];
		sta[i][0]*=2;
	}
	int sumwe=0;
	int meet=0;
	int first=1;
	int last=n;
	while(sumwe<weight/2){
		for(int i=first;i<=last;++i){
			sta[i][0]+=sta[i][1];
			if(sta[i][0]==0){
				++first;
				sumwe+=we[i];
			}else if(sta[i][0]==l){
				--last;
				sumwe+=we[i];
			}else if(i!=first && sta[i][0]==sta[i-1][0]){
				++meet;
				sta[i][1]*=-1;
				sta[i-1][1]*=-1;
			}
		}
	}
	cout<<meet<<endl;
	return 0;
}