比赛 |
“Asm.Def战记之太平洋”杯 |
评测结果 |
AAAAAAATTT |
题目名称 |
Asm.Def的一秒 |
最终得分 |
70 |
用户昵称 |
debug |
运行时间 |
3.207 s |
代码语言 |
C++ |
内存使用 |
3.25 MiB |
提交时间 |
2015-11-02 11:54:15 |
显示代码纯文本
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
double a,b,c,d;
int top=0;
struct ff
{
int x,y;
}f[111111]={};
int sum[111111]={};
struct gg
{
double x,y;
}g[111111]={};
bool cmpp(gg m,gg n)
{
return m.x<n.x;
}
int main()
{
freopen("asm_second.in","r",stdin);
freopen("asm_second.out","w",stdout);
scanf("%d%lf%lf%lf%lf",&n,&a,&b,&c,&d);
a=a/b;
c=c/d;//此时a<c,a和c为斜率
for(int i=0;i<n;i++)
scanf("%d%d",&f[i].x,&f[i].y);
for(int i=0;i<n;i++)
if((1.0*f[i].y/f[i].x>a+0.0000000001)&&(1.0*f[i].y/f[i].x<c-0.0000000001))
g[++top].x=1.0*f[i].x,g[top].y=1.0*f[i].y;
sort(g+1,g+top+1,cmpp);
for(int i=1;i<=top;i++)
sum[i]=1;
for(int i=2;i<=top;i++)
for(int j=1;j<i;j++)
if((g[i].y-g[j].y)/(g[i].x-g[j].x)>a&&(g[i].y-g[j].y)/(g[i].x-g[j].x)<c)
sum[i]=max(sum[i],sum[j]+1);
int ans=0;
for(int i=1;i<=top;i++)
if(ans<sum[i])
ans=sum[i];
printf("%d\n",ans);
return 0;
}