社区讨论

求助,为什么只有最后一个点wa了

P1259黑白棋子的移动参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6lnaw8
此快照首次捕获于
2025/11/20 06:54
4 个月前
此快照最后确认于
2025/11/20 06:54
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int n;
char f[110],p1,p2;
void print()
{
    for(int i=1;i<=2*n+2;i++)
                cout<<f[i];
          cout<<endl;
}
void movet(int y)
{
    if(y==4)
      {
          p1=f[4];p2=f[5];
        f[4]=f[9];f[5]=f[10];
          f[9]=p1;f[10]=p2;
          print();
          p1=f[4];p2=f[5];
          f[4]=f[8];f[5]=f[9];
          f[8]=p1;f[9]=p2;
          print();
        y--;
      }
    if(y==3)
     {
         p1=f[2];p2=f[3];
         f[2]=f[8];f[3]=f[9];
         f[8]=p1;f[9]=p2;
         print();
         p1=f[2];p2=f[3];
         f[2]=f[7];f[3]=f[8];
         f[7]=p1;f[8]=p2;
         print();
         y--;
     }
     if(y==2)
      {
          p1=f[1];p2=f[2];
          f[1]=f[7];f[2]=f[8];
          f[7]=p1;f[8]=p2;
          print();
      }
      exit(0) ;
}
void move(int x)
{
    if( x <= 4 )  
         movet(x);
    p1=f[2*x+1];p2=f[2*x+2];
    f[2*x+1]=f[x];f[2*x+2]=f[x+1];
    f[x]=p1;f[x+1]=p2;
    print();
    p1=f[2*x-1];p2=f[2*x];
    f[2*x-1]=f[x];f[2*x]=f[x+1];
    f[x]=p1;f[x+1]=p2;
    print();
    move(x-1);
}
int main()
{
    cin>>n;
    for(int i=1;i<=2*n;i++)
      f[i]='o';
    for(int i=n+1;i<=2*n;i++)
      f[i]='*';
    f[2*n+1]='-';f[2*n+2]='-';
    print();
    if(n<=4) movet(n);
    if(n>4) move(n);
   return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...