记录编号 |
359304 |
评测结果 |
AAAAAAAAAAAAAAA |
题目名称 |
奔跑 |
最终得分 |
100 |
用户昵称 |
Shirry |
是否通过 |
通过 |
代码语言 |
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;
}