Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- ios::sync_with_stdio(0);
- cin.tie(0);
- int Y, X, y, x, k;
- string s;
- cin>>Y>>X>>y>>x>>s;
- vector<vector<int> > table(Y+1);
- for(int i=1;i<=Y;i=i+1) table[i].resize(X+1);
- for(int i=0;i<s.size();i=i+1){
- if(s[i]=='U')
- y--;
- else if(s[i]=='D')
- y++;
- else if(s[i]=='R')
- x++;
- else if(s[i]=='L')
- x--;
- if(s[i]=='?') {
- k=i;
- break;
- }
- }
- vector<pair<int,int> > g;
- g.push_back({y,x});
- for(int i=k;i<s.size();i=i+1){
- if(s[i]=='?'){
- int siz=g.size();
- while(siz>0){
- if(g[0].first+1<=Y) g.push_back({g[0].first+1, g[0].second});
- if(g[0].first-1>=1) g.push_back({g[0].first-1, g[0].second});
- if(g[0].second+1<=X) g.push_back({g[0].first, g[0].second+1});
- if(g[0].second-1>=1) g.push_back({g[0].first, g[0].second-1});
- g.erase(g.begin());
- siz--;
- }
- }
- else if(s[i]=='U'){
- for(int j=0;j<g.size();j=j+1){
- if(g[j].first-1<1){
- g.erase(g.begin()+j);
- j--;
- }
- else g[j].first--;
- }
- }
- else if(s[i]=='D'){
- for(int j=0;j<g.size();j=j+1){
- if(g[j].first+1>Y){
- g.erase(g.begin()+j);
- j--;
- }
- else g[j].first++;
- }
- }
- else if(s[i]=='R'){
- for(int j=0;j<g.size();j=j+1){
- if(g[j].second+1>X){
- g.erase(g.begin()+j);
- j--;
- }
- else g[j].second++;
- }
- }
- else if(s[i]=='L'){
- for(int j=0;j<g.size();j=j+1){
- if(g[j].second-1<1){
- g.erase(g.begin()+j);
- j--;
- }
- else g[j].second--;
- }
- }
- }
- for(int o=0;o<g.size();o=o+1){
- table[g[o].first][g[o].second]=1;
- }
- for(int i=1;i<=Y;i=i+1){
- for(int j=1;j<=X;j=j+1){
- cout<<table[i][j];
- }
- cout<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement