View Code of Problem 1067

#include <cmath>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <string>
#include <map>
#include <set>


using namespace std;

#define MAXN 200010
#define LEN 1000000
#define INF 1e9+7
#define MODE 1000000
#define pi acos(-1)
#define g 9.8
typedef long long ll;

int n;
double h,l1,r1,l2,r2;
double v[MAXN];


int solve(double a)
{
    int cnt=0;
    for(int i=0;i<n;i++){
        double t=(sqrt(v[i]*v[i]*sin(a)*sin(a)+2*g*h)+v[i]*sin(a))/g;
        double x=v[i]*cos(a)*t;
        if(x>=l2&&x<=r2)
        {
            return 0;
        }
        if(x>=l1&&x<=r1)
            cnt++;
    }
    return cnt;
}

int main()
{
    while(scanf("%d",&n))
    {
        if(n==0)
            break;
        scanf("%lf%lf%lf%lf%lf",&h,&l1,&r1,&l2,&r2);
        for(int i=0;i<n;i++)
            scanf("%lf",v+i);
        int maxn=0;
        for(double i=-pi/2;i<=pi/2;i+=pi/1000)
        {
            maxn=max(solve(i),maxn);
        }
        printf("%d\n",maxn);
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 1067