关掉流同步后,scanf和cin不能混用!
如下面的代码,会爆零
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,q,k,mp[128],x,y,a,b;
bool st[25],rev[200005];
char c,f[505][505];
const int dir[2][4]={{0,1,2,3},{1,0,3,2}};
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,1,-1};
int main()
{
ios::sync_with_stdio(0);
cin>>n>>m>>q>>k;
mp['U']=0;mp['D']=1;mp['R']=2;mp['L']=3;
for(int i=1;i<=n;i++) scanf("%s",f[i]+1);
x=y=1;
for(int i=1;i<=q;i++)
{
cin>>c;
cin>>a>>b;
x+=a*dx[dir[st[i%k]][mp[c]]];
y+=a*dy[dir[st[i%k]][mp[c]]];
x=max(1,x);x=min(n,x);
y=max(1,y);y=min(m,y);
if(f[x][y]=='X') st[i%k]^=1,rev[i+k*b]^=1;
if(rev[i]) st[i%k]^=1;
}
printf("%d %d\n",x,y);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m,q,k,mp[128],x,y,a,b;
bool st[25],rev[200005];
char c,f[505][505];
const int dir[2][4]={{0,1,2,3},{1,0,3,2}};
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,1,-1};
int main()
{
cin>>n>>m>>q>>k;
mp['U']=0;mp['D']=1;mp['R']=2;mp['L']=3;
for(int i=1;i<=n;i++) scanf("%s",f[i]+1);
x=y=1;
for(int i=1;i<=q;i++)
{
cin>>c>>a>>b;
x+=a*dx[dir[st[i%k]][mp[c]]];
y+=a*dy[dir[st[i%k]][mp[c]]];
x=max(1,x);x=min(n,x);
y=max(1,y);y=min(m,y);
if(f[x][y]=='X') st[i%k]^=1,rev[i+k*b]^=1;
if(rev[i]) st[i%k]^=1;
}
printf("%d %d\n",x,y);
return 0;
}