201912-2-回收站选址

题目

201912-2-回收站选址_第1张图片201912-2-回收站选址_第2张图片
201912-2-回收站选址_第3张图片
在这里插入图片描述

我的代码

#include 
using namespace std;
int main(int argc, char *argv[]) {
     
	long long n,i,j,sum[5]={
     0},score;
	bool flagt,flagb,flagl,flagr;
	cin>>n;
	long long** a=new long long*[n];
	for(i=0;i<n;i++)
	{
     
		a[i]=new long long[3];
		a[i][2]=-1;
	}
	i=0;
	while(i++!=n)
		cin>>a[i-1][0]>>a[i-1][1];
	for(i=0;i<n;i++)
	{
     
		flagt=flagb=flagl=flagr=false;
		score=0;
		for(j=0;j<n;j++)
		{
     
			if(a[i][0]==a[j][0]-1&&a[i][1]==a[j][1])
				flagt=true;
			if(a[i][0]==a[j][0]+1&&a[i][1]==a[j][1])
				flagb=true;
			if(a[i][0]==a[j][0]&&a[i][1]==a[j][1]-1)
				flagr=true;
			if(a[i][0]==a[j][0]&&a[i][1]==a[j][1]+1)
				flagl=true;
			if(a[i][0]==a[j][0]-1&&a[i][1]==a[j][1]-1)
				score++;
			if(a[i][0]==a[j][0]+1&&a[i][1]==a[j][1]+1)
				score++;
			if(a[i][0]==a[j][0]+1&&a[i][1]==a[j][1]-1)
				score++;
			if(a[i][0]==a[j][0]-1&&a[i][1]==a[j][1]+1)
				score++;
		}
		if(flagt&&flagb&&flagl&&flagr)
			sum[score]++;
	}
	for(i=0;i<5;i++)
		cout<<sum[i]<<endl;
	return 0;
}

你可能感兴趣的:(CSP认证刷题)