求助,40pts,4、5wa了四个点
查看原帖
求助,40pts,4、5wa了四个点
1178512
fire_hua楼主2024/10/3 16:08

wa


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//#define int long long
const int N=2e5+10,M=510;
char a[M][M];
int f[25],cnt[N][25];
struct Node{
	char s;
	int a,b;
//	bool f;
}dq[N];
char change(char s)
{
   if(s=='U') return 'D';
   if(s=='D') return 'U';
   if(s=='R') return 'L';
   if(s=='L') return 'R';
}
int main()
{  int n,m,q,k;
cin>>n>>m>>q>>k;
 for(int i=1;i<=n;i++)
  for(int j=1;j<=m;j++)
   cin>>a[i][j];
   
  for(int i=1;i<=q;i++)
  cin>>dq[i].s>>dq[i].a>>dq[i].b;
  
  int x=1,y=1;
  for(int i=1;i<=q;i++)
  { int id;
     if(i%k==0) id=k;
     else id=i%k;
    f[id]^=cnt[i][id];
	  if(f[id]) dq[i].s=change(dq[i].s); 
      if(dq[i].s=='D') x+=dq[i].a;
	  if(dq[i].s=='U') x-=dq[i].a;
	  if(dq[i].s=='L') y-=dq[i].a;
	  if(dq[i].s=='R') y+=dq[i].a;
	if(x<1)x=1;
	if(x>n) x=n;
	if(y<1) y=1;
	if(y>m) y=m;
	if(a[x][y]=='X')
	{
    f[id]^=1,cnt[i+dq[i].b*k+k][id]^=1;
	}
	//cout<<"i"<<i<<" "<<x<<" "<<y<<'\n';
  }
 cout<<x<<" "<<y<<'\n';
	return 0;
}
2024/10/3 16:08
加载中...