POJ 2606/ural 1502 Rabbit hunt: Computational geometry

Source: Internet
Author: User

1052 Rabbit Hunt.

http://poj.org/problem?id=2606

http://acm.timus.ru/problem.aspx?space=1&num=1052

Time limit:1.0 Second

Memory limit:64 MB

A good hunter kills two rabbits with one shot. Of course, it can be easily done since to any two points we can always draw a line containing the both. But killing three or more rabbits in one shot are much more difficult task. To being the best hunter in the world one should is able to kill the maximal possible number of rabbits. Assume that rabbit are a point on the plane with integer x and y coordinates. Having a set of rabbits your are to find the largest number of rabbits that can is killed with single shot, i.e. maximum Nu Mber of points lying exactly on the same line. No two rabbits sit at one point.

Input

An input contains an integer n (3≤ n ≤200) specifying the number of rabbits. Each of the next N lines in the input contains the x coordinate and the y coordinate (in this O Rder) separated by a space (2000≤ x, y ≤2000).

Output

The output contains the maximal number of rabbits situated in one line.

Sample

The same question.

See more highlights of this column: http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

Complete code:

/*poj:32ms,204kb*/
/*ural:0.015s,148kb*/
  
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int INF = 1 <<;
  
Char str[20];
Double x[705], y[705], d[705];
  
int main (void)
{
    int n, I, J, K;
    int ans, count;
    scanf ("%d", &n);
    for (i = 0; i < n; ++i)
        scanf ("%lf%lf", &x[i), &y[i]);
    ans = 1;
    for (i = 0; i < n-1. ++i)
    {
        for (j = i + 1, k = 0; J < N; ++j, ++k)
            d[k] = (x[j] = = X[i]? INF: (Y[j]-y[i])/(X[j]-x[i));
        Sort (d, D + k);
        Count = 1;
        for (j = 1; j < K; ++j)
        {
            if (fabs (D[J)-d[j-1]) < 1e-9)
            {
                ++count;
                ans = max (ans, count);
            else count = 1;
        }
    }
    printf ("%d", ans + 1);
    return 0;
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.