记录编号 359304 评测结果 AAAAAAAAAAAAAAA
题目名称 奔跑 最终得分 100
用户昵称 GravatarShirry 是否通过 通过
代码语言 C++ 运行时间 0.604 s
提交时间 2016-12-21 23:14:26 内存使用 1.48 MiB
显示代码纯文本
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<set>
#include<vector>
using namespace std;
#define INF (ll)1<<62
typedef long long ll;
namespace IO{
	char buf[1<<15],*fs,*ft;
	inline char gc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin)),fs==ft)?0:*fs++;}
	inline ll  read(){
		ll x=0;
		int f=1;
		char c=gc();
		while(c<'0'||c>'9'){
			if(c=='-'){
				f=-1;}
			c=gc();}
		while(c>='0'&&c<='9'){
			x=(x<<1)+(x<<3)+c-'0';
			c=gc();}
		return f*x;}
}using namespace IO;
using namespace std;
/*******************************************************///听说加了快读会很快
struct poi{
	int t;
	int l;
};
poi A[100009];
int B[100009];
int cmp(int x,int y){
	return A[x].t<A[y].t;
}
set<int>C;
set<int>Active;
int main(){
	freopen("stampede.in","r",stdin);
	freopen("stampede.out","w",stdout);
	int N,x,y,r,temp=0;
	N=read();
	for(int i=1;i<=3*N;i++)B[i]=i;
	for(int i=1;i<=N;i++){
		temp++;
		x=read();
		y=read();
		r=read();
		A[temp].t=(abs((double) x)-1)*r;
		A[temp].l=y;
		temp++;
		A[temp].t=abs((double) x)*r;
		A[temp].l=0-y;
	}
	sort(B+1,B+temp+1,cmp);
	int a=A[B[1]].t;
	for(int j=1;j<=temp;j++){
		int i=B[j];
		if(A[i].t==a){
			if(A[i].l>=0){
				Active.insert(A[i].l);
			}
			if(A[i].l<0){
				int k=0-A[i].l;
				Active.erase(k);
			}	
		}
		if(A[i].t!=a){
			int p=99999999;
			set<int>::iterator k;
			for(k=Active.begin();k!=Active.end();k++){
				int b=*k;
				p=min(p,b);
			}
			if(p!=99999999)C.insert(p);
			a=A[i].t;
			if(A[i].l>0){
				Active.insert(A[i].l);
			}
			if(A[i].l<0){
				int k=0-A[i].l;
				Active.erase(k);
			}
		}
	}
	printf("%d\n",C.size());
	return 0;
}