#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,k,a,b,p;
char s[55][55],s1,s2;
int main(){
cin>>n>>m>>k;
for(i=1;i<=n;i++)//初始化
for(j=1;j<=m;j++)
s[i][j]='.';
for(i=1;i<=k;i++){
scanf("%d%d",&a,&b);
cin>>s1>>s2;
for(j=a;j>0&&j<=n;j--){//判断j是否超出边界
for(p=b;p>0&&p<=m;p++){//判断p是否超出边界
if(s2==85){//U
s[i][j]=s1;//涂色
p--;//改位置
}
if(s2==68){//D
s[i][j]=s1;
p++;
}
if(s2==76){//L
s[i][j]=s1;
j--;
}
if(s2==82){//R
s[i][j]=s1;
j++;
}
}
}
}
for(i=1;i<=n;i++)//输出
for(j=1;j<=m;j++)
cout<<s[i][j];
cout<<endl;
return 0;
}
请指点一下,帮我AC
(为什么只能数两行数据?)