比赛 “Asm.Def战记之太平洋”杯 评测结果 EEEEEEEEEE
题目名称 Asm.Def的一秒 最终得分 0
用户昵称 coo 运行时间 1.291 s
代码语言 C++ 内存使用 0.66 MiB
提交时间 2015-11-02 11:59:33
显示代码纯文本
#include<string>
#include<string.h>
#include<vector>
#include<queue>
#include<cmath>
#include<cstdio>
#include<iostream>
using namespace std;
int m,n,j,k,l,ans=10;
int dx[10005],dy[10005],vis[10005]={0};
double di[10005],dii[10005],diii[10005];
int main()
{
	freopen("asm_second.in","r",stdin);
	freopen("asm_second.out","w",stdout);
	int a,b,c,d;
	cin>>n;
	cin>>a>>b>>c>>d;
	for(int i=1;i<=n;i++)
	cin>>dx[i]>>dy[i];
	double k1=(double)a/b,k2=(double)c/d;
	for(int i=1;i<=n;i++)
	di[i]=(double)dy[i]/dx[i];
   	m=0;n=0;di[0]=0;
	for(int i=1;i<=n;i++)
	if(di[i]<k2&&di[i]>k1){
	di[0]+=1;
	vis[i]=1;
	}
	
	 dii[0]=1;int t=1;
	 	while(vis[t]!=1)t++;
	 m=dx[t];
	 n=dy[t];
	 for(int i=1;i<=n;i++)
	 dii[i]=(double)(dy[i]-n)/(dx[i]-m);
	 for(int i=1;i<=n;i++)
	 if(dii[i]<k2&&di[i]>k1){
	 	dii[0]+=1;
	 }
	
	diii[0]=1;
	while(vis[t]!=1)t++;
	m=dx[t];
	n=dy[t];
	for(int i=1;i<=n;i++)
	diii[i]=(double)(dy[i]-n)/(dx[i]-m);
	for(int i=1;i<=n;i++)
	if(diii[i]<k2&&di[i]>k1)diii[0]+=1;
	if(dii[0]>diii[0])
	{
		ans=dii[0];
		while(vis[t]!=1)t++;
		diii[0]=1;t=2;
    	m=dx[t];
    	n=dy[t];
    	for(int i=1;i<=n;i++)
    	diii[i]=(double)(dy[i]-n)/(dx[i]-m);
    	for(int i=1;i<=n;i++)
    	if(diii[i]<k2&&di[i]>k1)diii[0]+=1;
	}
	else {
		ans=diii[0];
		while(vis[t]!=1)t++;
		dii[0]=1;
	    m=dx[t];
    	n=dy[t];
	    for(int i=1;i<=n;i++)
	    dii[i]=(double)(dy[i]-n)/(dx[i]-m);
    	for(int i=1;i<=n;i++)
    	if(dii[i]<k2&&di[i]>k1)dii[0]+=1;
	}
	cout<<ans<<endl;
    return 0;
}