离谱事件 本地和洛谷输出不一致 没有换行符
查看原帖
离谱事件 本地和洛谷输出不一致 没有换行符
649717
dounsm楼主2022/12/30 19:14

评测记录

这是测试点#1在我本地(Windows x64 gcc 10.3.0 (tdm64-1))的输出:

58

这是下载的文件P1518_1.out的内容:

58

这是评测的错误信息:

wrong answer On line 1 column 1, read 0, expected 5.

怎么会输出0?

提交之后有4个RE、其他全是WA

我的代码:

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <cmath>
#include <algorithm>

#define SIZE 12

#define f(s,e,val) for(int (val)=(s);(val)<(e);(val)++)
#define conv(x,y,n) ((x)+(y)*n)
#define cv10(x,y) ((x)+(y)*SIZE)
#define betw(mi,n,ma) (((mi)<=(n))&&((n)<=(ma)))

struct{
  int dx,dy;
}cmds[4]={{0,-1},{1,0},{0,1},{-1,0}/*front,right,back,left*/};
inline int check(int inp){
  return inp%4;
};
char map[SIZE*SIZE];
bool history[10000000];

int main(){
#ifdef LOCALTEST
  freopen("in", "r", stdin);
  freopen("out", "w", stdout);
#endif

  char inp;
  int fx,fy,cx,cy,mns=0,tx,ty,fs=0,cs=0,ofx,ofy,ocx,ocy;
  f(1,11,y){
    f(1,11,x){
      inp = getchar();
      map[cv10(x,y)]=inp;
      switch(inp){
        case('C'):
          ocx=cx=x,ocy=cy=y;
          break;
        case('F'):
          ofx=fx=x,ofy=fy=y;
          break;
        default:
          break;
      };
    };
    getchar();
  };
  for(int y:{0,11}){
    f(0,12,x){
      map[cv10(x,y)]='*';
    };
  };
  for(int x:{0,11}){
    f(0,12,y){
      map[cv10(x,y)]='*';
    };
  };

  while(1){
    //移动:牛
    tx=cx+cmds[cs].dx;
    ty=cy+cmds[cs].dy;
    if(map[cv10(tx,ty)]=='*'){
      cs=check(cs+1);
    }else{
      ocx=cx;ocy=cy;
      cx=tx;cy=ty;
    };
    tx=fx+cmds[fs].dx;
    ty=fy+cmds[fs].dy;
    if(map[cv10(tx,ty)]=='*'){
      fs=check(fs+1);
    }else{
      ofx=fx;ofy=fy;
      fx=tx;fy=ty;
    };
    mns++;
    //移动后判断
    if((fx==cx)&&(fy==cy)){
      printf("%d",mns);
      return 0;
    }else{
      //记录
      long long temp = 0;
      temp+=cx+cy*10;
      temp+=fx*100LL+fy*1000LL;
      temp+=fs*10000LL+cs*100000LL;
      if(history[temp]){
        printf("0");
        return 0;
      };
      history[temp]=true;
    };
  };


  // f(0,12,y){
  //   f(0,12,x){
  //     putchar(map[cv10(x,y)]);
  //   };
  //   putchar('\n');
  // };
  // printf("%d %d %d %d",fx,fy,cx,cy);

  return 0;
}

2022/12/30 19:14
加载中...