Nearby Bicycles

With fast developments of information and communication technology, many cities today have established bicycle sharing systems. The key component of the system is to provide information on nearby bicycles to potential users.

Consider mmm bicycles and nnn customers, where each bicycle is located at coordinate (cj,dj)(c_j , d_j )(cj,dj) for j=1,2,...,m,j = 1, 2, ... , m,j=1,2,...,m, and each user iii is located at coordinate (ai,bi)(a_i, b_i)(ai,bi) for i=1,2,...,ni = 1, 2, ... , ni=1,2,...,n The distance between two coordinates (x,y)(x, y)(x,y) and (x,y)(x, y)(x,y) is measured by (x−x)2+(y−y)2 \sqrt{(x-x)^2 +(y-y)^2}(xx)2+(yy)2 . For each user i=1,2,...,ni = 1,2,...,ni=1,2,...,n, you are given a threshold sis_isi, your task is to return the total number of bicycles that are within a distance of si from user iii.

Input

The test data may contain many test cases. Each test case contains four lines. The first line of each case contains two integers, mmm and n(0<m,n≤1000)n (0 < m, n \le 1000)n(0<m,n1000). The second line contains the coordinates, (c1,d1),(c2,d2),...,(cm,dm)(c_1, d_1), (c_2, d_2), ... , (c_m, d_m)(c1,d1),(c2,d2),...,(cm,dm), of bicycles 1,2,...,m 1, 2, ... , m1,2,...,m, respectively, which are separated by a space. The third line contains the coordinates,(a1,b1),(a2,b2),...,(an,bn)(a1, b1), (a2, b2), ... , (an, bn)(a1,b1),(a2,b2),...,(an,bn), of users 1,2,...,n1, 2,... , n1,2,...,n, respectively, which are separated by a space. contains the thresholds, s1,s2,...,sns_1, s_2, ... , s_ns1,s2,...,sn, of the nnn users. The last test case is followed by a line of two 000s. All the number of coordinate in the input is in the range [−100000,100000][-100000, 100000][100000,100000].

Output

The output for each test case contains a line of nnn integers, k1,k2,...,knk_1, k_2, ... , k_nk1,k2,...,kn, where each ki represents the total number of bicycles that are within a distance of sis_i si from user iii, for i=1,2,...,ni = 1,2,...,ni=1,2,...,n.

样例输入

4 2
(0,0) (0,1) (1,0) (1,1)
(0,0) (1,1)
1 1
0 0

样例输出

3 3

C++期末考试题。。。
基本输入输出,傻了。
那个括号完全可以当作字符输入然后不管他的嘤嘤嘤。
强行用gets带偏队友
然后又强行用字符串带偏队友
每说一句话要深思熟虑,否则就成为坑货了。。。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct data
{
    ll x=0,y=0;
    ll dist=0;
    ll ans=0;
};
ll fun(ll x1,ll x2,ll y1,ll y2)
{
    return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}
char s[100005]= {0};
int main()
{
    ios::sync_with_stdio(false);
    int n,m;
    char e,f,g;
    while(cin>>n>>m&&n&&m){
        int i;
        data a[1005];
        data b[1005];
        for(i=1; i<=n; i++) cin>>e>>a[i].x>>f>>a[i].y>>g;
        for(i=1; i<=m; i++) cin>>e>>b[i].x>>f>>b[i].y>>g;
        for(i=1; i<=m; i++)
        {
            ll si;
            cin>>si;
            b[i].dist=si*si;
        }
        int j;
        for(i=1; i<=m; i++)
        {
            for(j=1; j<=n; j++)
            {
                ll dd=fun(a[j].x,b[i].x,a[j].y,b[i].y);
                if(dd<=b[i].dist) b[i].ans++;
            }
        }
        for(i=1; i<m; i++) cout<<b[i].ans<<" ";
        cout<<b[i].ans<<endl;
    }
    return 0;
}
View Code

 



posted @ 2018-04-06 23:07  house_cat  阅读(261)  评论(0编辑  收藏  举报