思路:
如果是0我们就把它放在第一列的两个位置,满了就消去,如果是1我们就放在最右边两列,满了就消去。
代码如下:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn=1005;
char op[maxn];
int main()
{
scanf("%s",op);
int len=strlen(op);
int op0[2][2]={{1,1},{3,1}};
int op1[4][2]={{1,3},{2,3},{3,3},{4,3}};
int num0=0,num1=0;
for (int i=0;i<len;i++)
{
if(op[i]=='0')
{
printf("%d %d\n",op0[num0][0],op0[num0][1]);
num0=(num0+1)%2;
}
else
{
printf("%d %d\n",op1[num1][0],op1[num1][1]);
num1=(num1+1)%4;
}
}
return 0;
}