Cod sursa(job #469102)

Utilizator milijrCristian Militaru milijr Data 6 iulie 2010 13:06:02
Problema Zota & Chidil Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<fstream>
using namespace std;
int ver(int i, int j, int capi[], int capj[], int n)
{
	int k;
	for(k=1;k<=n;k++)
		if((abs(capi[k]-i)+abs(capj[k]-j))<=2)
			return 1;
	return 0;
}
int main()
{
	ifstream fin("zc.in");
	ofstream fout("zc.out");
	int nr,k,i=0,j=0,n,m,capi[100005],capj[100005],f=0,k2;
	char dir;
	fin>>n>>m;
	for(k=1;k<=n;k++)
		fin>>capj[k]>>capi[k];
	if(ver(i,j,capi,capj,n))
		f++;
	for(k=1;k<=m;k++)
	{
		fin>>dir>>nr;
		if(dir=='N')
		{
			for(k2=1;k2<=nr;k2++)
			{
				i++;
				if(ver(i,j,capi,capj,n))
				{
					f++;
				}
			}
		}
		if(dir=='S')
		{
			for(k2=1;k2<=nr;k2++)
			{
				i--;
				if(ver(i,j,capi,capj,n))
				{
					f++;
				}
			}
		}
		if(dir=='E')
		{
			for(k2=1;k2<=nr;k2++)
			{
				j++;
				if(ver(i,j,capi,capj,n))
				{
					f++;
					
				}
			}
		}
		if(dir=='V')
			for(k2=1;k2<=nr;k2++)
			{
				j--;
				if(ver(i,j,capi,capj,n))
				{
					f++;
				}
			}
	}
	fout<<f;
	fin.close();
	fout.close();
}