Description






































Input




































Output
























Sample Input
4 4 5 10 2 1 4 2 3 3 2 4 4 3 1 2 4 3 4 4 4
Sample Output
0 5 0 3 0 2 1 3 0 1
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN = 100 + 10;
struct wp
{
	int x, y;
	int state;
	int t;
	wp()
	{
	}
	wp( int x, int y, int state, int t )
	{
		this->x = x;
		this->y = y;
		this->state = state;
		this->t = t;
	}
};
struct drop
{
	int x, y;
	int dir;
	int state;
	drop()
	{ }
	drop( int x, int y, int dir,int state )
	{
		this->x = x;
		this->y = y;
		this->dir = dir;
		this->state = state;
	}
};
int dir[4][2] = { {-1,0},{1,0},{0,-1},{0,1} };
wp p[MAXN];
drop d[MAXN * 10];
int Size[MAXN][MAXN];
int n, m, k, t;
bool inline check( int x, int y )
{
	return 1 <= x&&x <= n && 1 <= y&&y <= m;
}
int main()
{
	while(scanf( "%d%d%d%d", &n, &m, &k, &t ) == 4)
	{
		int x, y, s;
		memset( Size, 0, sizeof Size );
		for(int i = 0; i < k; i++)
		{
			scanf( "%d%d%d", &x, &y, &s );
			Size[x][y] = s;
			p[i] = wp( x, y, 1, -1 );
		}
		scanf( "%d%d", &x, &y );
		int cnt = 0;
		for(int i = 0; i < 4; i++)
		{
			d[cnt++] = drop( x, y, i, 1 );
		}
		
		for(int tt = 1; tt <= t; tt++)
		{
			for(int i = 0; i < cnt; i++)
			{
				if(d[i].state == 0) continue;
				d[i].x += dir[d[i].dir][0];
				d[i].y += dir[d[i].dir][1];
				if(!check( d[i].x, d[i].y ))
				{
					d[i].state = 0;
				}
				if(Size[d[i].x][d[i].y]>0)
				{
					Size[d[i].x][d[i].y]++;
					d[i].state = 0;
				}
			}
			for(int i = 0; i < k; i++)
			{
				if(p[i].state == 0)continue;
				if(Size[p[i].x][p[i].y]>4)
				{
					p[i].state = 0;
					p[i].t = tt;
					Size[p[i].x][p[i].y] = 0;
					for(int j = 0; j < 4; j++)
					{
						d[cnt++] = drop( p[i].x, p[i].y, j, 1 );
					}
				}
			}
		}
		
		for(int i = 0; i < k; i++)
		{
			printf( "%d %d\n", p[i].state, (p[i].state == 0 ? p[i].t : Size[p[i].x][p[i].y]) );
		}
	}
	return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/maxichu/article/details/48029219