记录编号 |
559635 |
评测结果 |
AAAAAAAAAA |
题目名称 |
知己知彼,百战不殆 |
最终得分 |
100 |
用户昵称 |
今天作业写了没 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.161 s |
提交时间 |
2021-03-22 21:36:16 |
内存使用 |
9.42 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int x,y,m,n,p[1805][1805],mx,a[5],b[5],unad,num;
void add(int x,int y)
{
if(!p[x][y]) unad++;
p[x][y]++;
if(p[x][y]==mx) num++;
if(p[x][y]>mx)
{
mx++;
num=1;
}
}
void scp(int x,int y)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=1;i<=2;i++) if(x>i) a[i]=1;
for(int i=0;i<=1;i++) if(x+i<n) a[3+i]=1;
for(int i=1;i<=2;i++) if(y>i) b[i]=1;
for(int i=0;i<=1;i++) if(y+i<n) b[3+i]=1;
// if(x>1) a[1]=1; -1
// if(x>2) a[2]=1; -2
// if(x<n) a[3]=1; +1
// if(x+1<n) a[4]=1; +2
if(a[1] && b[2]) add(x-1,y-2);//1
if(a[3] && b[2]) add(x+1,y-2);//2
if(a[4] && b[1]) add(x+2,y-1);//3
if(a[4] && b[3]) add(x+2,y+1);//4
if(a[3] && b[4]) add(x+1,y+2);//5
if(a[1] && b[4]) add(x-1,y+2);//6
if(a[2] && b[3]) add(x-2,y+1);//7
if(a[2] && b[1]) add(x-2,y-1);//8
add(x,y);//self
}
int main()
{
freopen("safenum.in","r",stdin);
freopen("safenum.out","w",stdout);
cin>>n>>m;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
scp(x,y);
}
cout<<n*n-unad<<endl<<mx<<" "<<num;
}