int main(void)
{
    int ncase, cnt=0;
    scanf("%d", &ncase);
    while( ncase-- )
    {
        int  t;
        int i, j;
        scanf("%d%d", &t, &n);
        for( i=0; i < n; ++i ) 
        {
            scanf("%d%d%d", &p[i].x, &p[i].y, &p[i].len);
            p[i].len *= t; p[i].len *= p[i].len;
        }
        scanf("%d", &m);
        for( i=0; i < m; ++i )
        {
            Lpoint  um;
            scanf("%d%d", &um.x, &um.y);
            for( j=0; j < n; ++j )
                map[j][i] = ( p2pdis(p[j], um) <= p[j].len );
        }
        printf("Scenario #%d:\n%d\n\n", ++cnt, MaxMatch());
    }
    return 0;
}
Example #2
0
int
main(int argc, char **argv)
{
	int i, tests;
	scanf("%d", &tests);
	while(tests--) {
		scanf("%d", &M);
		for(i=0; i<M; i++) 
			scanf("%d:%d %d %d %d %d", &rides[i].hour, &rides[i].minu, &rides[i].sx, &rides[i].sy, &rides[i].dx, &rides[i].dy);
		build_graph();
		printf("%d\n", M-MaxMatch());
	}
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
#endif
    while(scanf("%d",&k)==1 && k)
    {
        scanf("%d %d",&n,&m);
        memset(g,0,sizeof(g));
        for(int i=0;i<k;i++)
        {
            int x,y;
            scanf("%d %d",&x,&y);
            g[x][y]=1;
        }
        printf("%d\n",MaxMatch());
    }
    return 0;
}
Example #4
0
int
main(int argc, char **argv)
{
	int i, j;
	while(scanf("%d %d %d %d", &n, &m, &s, &v) != EOF) {
		for(i=0; i<n; i++)
			scanf("%f %f", &gophers[i].x, &gophers[i].y);
		for(j=0; j<m; j++)
			scanf("%f %f", &holes[j].x, &holes[j].y);

		memset(map, 0, sizeof(map));
		memset(result, -1, sizeof(result));
		for(i=0; i<n; i++) 
			for(j=0; j<m; j++) {
				if(sqrt((holes[j].x-gophers[i].x)*(holes[j].x-gophers[i].x) + (holes[j].y-gophers[i].y)*(holes[j].y-gophers[i].y)) <= v*s) /*reachable*/
					map[i][j] = 1;
				else
					map[i][j] = 0;
			}

		printf("%d\n", n-MaxMatch());
	}
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
#endif
    while(scanf("%d %d",&uN, &vN)==2)
    {
        memset(g,0,sizeof(g));

        for(int i=1;i<=uN;i++)
        {
            int s;
            scanf("%d",&s);
            for(int j=0;j<s;j++)
            {
                int x;
                scanf("%d",&x);
                g[i][x]=true;
            }
        }
        printf("%d\n",MaxMatch());
    }
    return 0;
}
Example #6
0
int main()
{
    int t;
    int n,m;
    char s[55][55];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        memset(g,0,sizeof(g));
        for(int i=0;i<n;i++)
        {
            scanf("%s",s[i]);
        }
        int coun1=0;
        int coun2=0;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                if(s[i][j]=='.')
                    coun1++;
                else if(s[i][j]=='o')
                    coun2++;
            }
        }
        for(int i=0;i<n-1;i++)
        {
            for(int j=0;j<m-1;j++)
            {
                if(s[i][j]=='.')
                {
                    if(s[i+1][j]=='o')
                    {
                        g[i*m+j][i*m+m+j]=1;
                        g[i*m+m+j][i*m+j]=1;
                    }
                    if(s[i][j+1]=='o')
                    {
                        g[i*m+j][i*m+j+1]=1;
                        g[i*m+j+1][i*m+j]=1;
                    }
                }
                if(s[i][j]=='o')
                {
                    if(s[i+1][j]=='.')
                    {
                        g[i*m+j][i*m+m+j]=1;
                        g[i*m+m+j][i*m+j]=1;
                    }
                    if(s[i][j+1]=='.')
                    {
                        g[i*m+j][i*m+1+j]=1;
                        g[i*m+1+j][i*m+j]=1;
                    }
                }
            }
        }
        for(int i=0;i<n-1;i++)
        {
            if(s[i][m-1]=='.')
            {
                if(s[i+1][m-1]=='o')
                {
                    g[i*m+m-1][i*m+m+m-1]=1;
                    g[i*m+m+m-1][i*m+m-1]=1;
                }
            }
            if(s[i][m-1]=='o')
            {
                if(s[i+1][m-1]=='.')
                {
                    g[i*m+m-1][i*m+m+m-1]=1;
                    g[i*m+m+m-1][i*m+m-1]=1;
                }
            }
        }
        for(int j=0;j<m-1;j++)
        {
            if(s[n-1][j]=='.')
            {
                if(s[n-1][j+1]=='o')
                {
                    g[(n-1)*m+j][(n-1)*m+j+1]=1;
                    g[(n-1)*m+j+1][(n-1)*m+j]=1;
                }
            }
            if(s[n-1][j]=='o')
            {
                if(s[n-1][j+1]=='.')
                {
                    g[(n-1)*m+j][(n-1)*m+j+1]=1;
                    g[(n-1)*m+j+1][(n-1)*m+j]=1;
                }
            }
        }
        /*for(int i=0;i<=n*m;i++)
        {
            for(int j=0;j<=n*m;j++)
            {
                if(g[i][j]==1)
                {
                    printf("%d %d-%d %d\n",i/m,i%m,j/m,j%m);
                }
            }
        }*/
        nx=n*m;
        ny=n*m;
        int ans=MaxMatch()/2;
        //printf("%d\n",ans);
        printf("%d\n",coun1+coun2-ans);
    }
    return 0;
}