比赛 |
“Asm.Def战记之太平洋”杯 |
评测结果 |
AAAAAAATTT |
题目名称 |
Asm.Def的一秒 |
最终得分 |
70 |
用户昵称 |
asddddd |
运行时间 |
3.637 s |
代码语言 |
C++ |
内存使用 |
0.33 MiB |
提交时间 |
2015-11-02 10:38:21 |
显示代码纯文本
//
// main.cpp
// asm_second
//
// Created by Qing Liu on 15/11/2.
// Copyright © 2015年 Qing Liu. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <vector>
#define maxn 110000
using namespace std;
bool used[maxn];
struct point{
int x,y,maxx;
};
vector<point>asd;
int a,b,c,d;
bool judge(int ta,int tb){
int x1=asd[tb].x-asd[ta].x,y1=asd[tb].y-asd[ta].y;
int tta=x1*c-y1*d;
int ttb=x1*a-y1*b;
if (tta>0&&ttb<0) {
return 1;
}
return 0;
}
int DFS(int id){
if (asd[id].maxx!=-1) {
return asd[id].maxx;
}
used[id]=1;
int maxxx=0;
for (int i=0 ; i<asd.size(); i++) {
if (!used[i]) {
if (judge(id,i)) {
maxxx=max(DFS(i),maxxx);
}
}
}
used[id]=0;
return asd[id].maxx=maxxx+1;
}
int main() {
freopen("asm_second.in", "r", stdin);
freopen("asm_second.out", "w", stdout);
int n;
cin>>n;
cin>>a>>b>>c>>d;
asd.push_back((point){0,0,-1});
for (int i=0; i<n; i++) {
int x,y;
cin>>x>>y;
point assd=(point){
x,y,-1
};
asd.push_back(assd);
}
DFS(0);
cout<<asd[0].maxx-1;
return 0;
}