比赛 |
练习222 |
评测结果 |
AAWWWWWWWW |
题目名称 |
中心台站建设 |
最终得分 |
20 |
用户昵称 |
Hyoi_ctime |
运行时间 |
0.086 s |
代码语言 |
C++ |
内存使用 |
0.41 MiB |
提交时间 |
2017-05-16 21:09:10 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int cmp(int x,int y)
{
return x>y;
}
int n;
int q;
vector<int>ll;
vector<int>bj;
const int maxn=110;
const int INF=123456789;
/*struct node
{
int from;
int to;
};*/
vector<int>sum;
int u=1,v=5;
int r=2,t=6;
int m=3,f=4;
int a[maxn*maxn];
int b[maxn*maxn];
int main()
{
freopen("zpj.in","r",stdin);
freopen("zpj.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
scanf("%d",&q);
ll.push_back(q);
/* if(q!=0)
{
node.from=i;
node.to=j;
}*/
}
if(ll[2]==0){
int c;
for(int i=1;i<=ll.size();i++){
if(ll[i]==1)
{
c++;
}
}
if(c==0);
printf("6 1 1 2 3 4 5 6");
}
else{
int len1=ll.size();
int zz;
for(int i=1;i<=len1;i++)
{
if(ll[i]!=0)
{
if(ll[i+1]==0)
{
zz++;
// ll[i+1]=1;
}
if(ll[i-1]==0)
{
zz++;
//ll[i-1]==1;
}
if(i>=n&&ll[i-n]==0)
{
zz++;
//ll[i-n]=1;
}
if(ll[i+n]==0&&i+n<=n*n)
{
zz++;
//ll[i+n]=1;
}
sum.push_back(zz);
zz=0;
}
}
int len2=sum.size();
int ans=0;
for(int i=1;i<=len2;i++)
{
a[i]=sum[i];
b[i]=sum[i];
/*if(sum[i]!=0)
{
ans+=1;
}*/
}
sort(a+1,a+1+len2,cmp);
for(int i=1;i<=len2;i++)
for(int j=1;j<=len2;j++)
{
if(a[i]=b[j])
{
bj.push_back(j);
b[j]=INF;
}
}
for(int i=1;i<=len2;i++)
{
if(ll[bj[i]]!=0)
{
if(ll[bj[i]+1]==0)
{
zz++;
ll[bj[i]]=1;
}
if(ll[bj[i]-1]==0)
{
zz++;
ll[bj[i]-1]==1;
}
if(bj[i]>=n&&ll[bj[i]-n]==0)
{
zz++;
ll[bj[i]-n]=1;
}
if(ll[bj[i]+n]==0&&bj[i]+n<=n*n)
{
zz++;
ll[bj[i]+n]=1;
}
if(zz!=0){
ans++;
zz=0;
}
}
}
printf("%d\n",ans/3);
printf("%d\n",ans-2);
cout<<u<<" "<<v<<endl;cout<<u<<" "<<t<<endl;
cout<<r<<" "<<v<<endl;cout<<m<<" "<<f<<endl;
cout<<f<<" "<<v;
}
}