delete pics to save space

This commit is contained in:
2023-08-03 09:22:52 +08:00
commit de60cd6ed4
1334 changed files with 66221 additions and 0 deletions

112
2.1609.cpp Normal file
View File

@ -0,0 +1,112 @@
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int maxn=1026;
char s[maxn][maxn];
int st[maxn];
int n;
void solve()
{
memset(st,0,sizeof(st));
int i,j;
vector<int> black,gray;
int size=n,match;
while(size>1)
{
black.clear();gray.clear();
for(i=0;i<n;i++) st[i]=(st[i]==-1?-1:0);
for(i=1;i<n;i++)
if(!st[i]&&s[0][i]=='0')
{
black.push_back(i);
continue;
}
for(i=1;i<n;i++)
if(!st[i]&&s[0][i]=='1')
for(j=1;j<n;j++)
if(!st[j]&&j!=i&&s[0][j]=='0'&&s[i][j]=='1')
{
gray.push_back(i);
break;
}
for(i=0;i<black.size();i++)
for(j=0;j<gray.size();j++)
if(!st[gray[j]]&&s[gray[j]][black[i]]=='1')
{
st[black[i]]=-1;
st[gray[j]]=1;
printf("%d %d\n",black[i]+1,gray[j]+1);
break;
}
for(i=1;i<n;i++)
if(s[0][i]=='1'&&!st[i])
{
printf("1 %d\n",i+1);
st[i]=-1;
st[0]=1;
break;
}
match=-1;
for(i=0;i<black.size();i++)
if(!st[black[i]])
{
if(match==-1) match=black[i];
else
{
printf("%d %d\n",match+1,black[i]+1);
if(s[match][black[i]]=='1')
{
st[match]=1;
st[black[i]]=-1;
}
else
{
st[match]=-1;
st[black[i]]=1;
}
match=-1;
}
}
match=-1;
for(i=0;i<n;i++)
if(!st[i])
{
if(match==-1) match=i;
else
{
printf("%d %d\n",match+1,i+1);
if(s[match][i]=='1')
{
st[match]=1;
st[i]=-1;
}
else
{
st[match]=-1;
st[i]=1;
}
match=-1;
}
}
size=size/2;
}
}
int main()
{
#ifdef local
freopen("pro.in","r",stdin);
#endif
while(scanf("%d",&n)==1)
{
fgets(s[0],maxn,stdin);
for(int i=0;i<n;i++)
fgets(s[i],maxn,stdin);
solve();
}
return 0;
}