QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#683044#6422. Evil CoordinateQF_love_younger_sisterAC ✓21ms3792kbC++233.7kb2024-10-27 18:30:152024-10-27 18:30:15

Judging History

你现在查看的是最新测评结果

  • [2024-10-27 18:30:15]
  • 评测
  • 测评结果:AC
  • 用时:21ms
  • 内存:3792kb
  • [2024-10-27 18:30:15]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
string ss;
void solve(){
	int xd,yd;
	cin >> xd >> yd;
	cin >> ss;
	//cout << ss << "\n";
	int len=ss.size();
	int u=0,d=0,l=0,r=0;
	for(int i=0; i<len; i++){
		if(ss[i]=='R') r++;
		if(ss[i]=='U') u++;
		if(ss[i]=='L') l++;
		if(ss[i]=='D') d++;
	}
	if(r-l==xd && u-d==yd){
		cout << "Impossible\n";
		return;
	}
	if(xd==0 && yd==0){
		cout << "Impossible\n";
		return;
	}
	if(xd!=0 && yd!=0){
		int mbx=r-l;
		if(mbx==xd){
			while(u!=0){
				u--;
				cout << "U";
			}
			while(d!=0){
				d--;
				cout << "D";
			}
			while(l!=0){
				l--;
				cout << "L";
			}
			while(r!=0){
				r--;
				cout << "R";
			}
		}
		else{
			while(l!=0){
				l--;
				cout << "L";
			}
			while(r!=0){
				r--;
				cout << "R";
			}
			while(u!=0){
				u--;
				cout << "U";
			}
			while(d!=0){
				d--;
				cout << "D";
			}
		}
	}
	if(xd!=0 && yd==0){
		if(u==0 && d==0){
			if(xd>0){
				if(r-l>=xd){
					cout << "Impossible\n";
					return;
				}
				else{
					while(l!=0){
						l--;
						cout << "L";
					}
					while(r!=0){
						r--;
						cout << "R";
					}
				}
			}
			else{
				if(l-r>=-1*xd){
					cout << "Impossible\n";
					return;
				}
				else{
					while(r!=0){
						r--;
						cout << "R";
					}
					while(l!=0){
						l--;
						cout << "L";
					}
				}
			}
		}
		else{
			if(d<u || d==0){
				while(u!=0){
					u--;
					cout << "U";
				}
				if(r>l){
					while(l!=0){
						l--;
						cout << "L";
					}
					while(r!=0){
						r--;
						cout << "R";
					}
				}
				else{
					while(r!=0){
						r--;
						cout << "R";
					}
					while(l!=0){
						l--;
						cout << "L";
					}
				}
				while(d!=0){
					d--;
					cout << "D";
				}
			}
			else{
				while(d!=0){
					d--;
					cout << "D";
				}
				if(r>l){
					while(l!=0){
						l--;
						cout << "L";
					}
					while(r!=0){
						r--;
						cout << "R";
					}
				}
				else{
					while(r!=0){
						r--;
						cout << "R";
					}
					while(l!=0){
						l--;
						cout << "L";
					}
				}
				while(u!=0){
					u--;
					cout << "U";
				}
			}
		}
	}
	if(xd==0 && yd!=0){
		if(l==0 && r==0){
			if(yd>0){
				if(u-d>=yd){
					cout << "Impossible\n";
					return;
				}
				else{
					while(d!=0){
						d--;
						cout << "D";
					}
					while(u!=0){
						u--;
						cout << "U";
					}
				}
			}
			else{
				if(d-u>=-1*yd){
					cout << "Impossible\n";
					return;
				}
				else{
					while(u!=0){
						u--;
						cout << "U";
					}
					while(d!=0){
						d--;
						cout << "D";
					}
				}
			}
		}
		else{
			if(l<r || l==0){
				while(r!=0){
					r--;
					cout << "R";
				}
				if(u>d){
					while(d!=0){
						d--;
						cout << "D";
					}
					while(u!=0){
						u--;
						cout << "U";
					}
				}
				else{
					while(u!=0){
						u--;
						cout << "U";
					}
					while(d!=0){
						d--;
						cout << "D";
					}
				}
				while(l!=0){
					l--;
					cout << "L";
				}
			}
			else{
				while(l!=0){
					l--;
					cout << "L";
				}
				if(u>d){
					while(d!=0){
						d--;
						cout << "D";
					}
					while(u!=0){
						u--;
						cout << "U";
					}
				}
				else{
					while(u!=0){
						u--;
						cout << "U";
					}
					while(d!=0){
						d--;
						cout << "D";
					}
				}
				while(r!=0){
					r--;
					cout << "R";
				}
			}
		}
	}
	cout << "\n";
	return;
}
signed main(){
	ios::sync_with_stdio(false),cin.tie(0);
	int _=1;
	cin>>_;
	while(_--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3648kb

input:

5
1 1
RURULLD
0 5
UUU
0 3
UUU
0 2
UUU
0 0
UUU

output:

LLRRUUD
UUU
Impossible
Impossible
Impossible

result:

ok 5 cases

Test #2:

score: 0
Accepted
time: 15ms
memory: 3716kb

input:

11109
6 0
RUDUDR
2 0
URU
0 0
UDRU
0 0
R
-1 1
LDUUDDRUUL
-1 5
RRUUUDUUU
-8 4
RRDRLDR
2 0
UD
0 0
UUDD
3 -2
LDDLLLRR
3 -2
LDRURLDD
1 0
RRL
-1 0
DUDDLLRDU
-4 0
LL
-1 -1
DLRLDLUDUR
1 4
URDULUR
0 0
DDUUDUDDDD
0 2
UU
1 0
RRULD
0 -2
LDLRLLDRRL
0 1
RLRLLRLUR
-3 0
RL
0 0
D
0 0
L
0 0
DDLRRUDRUD
0 0
DULU
2 0
RR...

output:

DDRRUU
UUR
Impossible
Impossible
Impossible
RRUUUUUUD
LRRRRDD
DU
Impossible
LLLLRRDD
LLRRUDDD
Impossible
DDDDRLLUU
LL
Impossible
UUUDLRR
Impossible
Impossible
Impossible
LLLLLDDRRR
Impossible
RL
Impossible
Impossible
Impossible
Impossible
Impossible
RRRRRUULLL
LLLUD
Impossible
DDDLUUU
UUDDRR
Impossi...

result:

ok 11109 cases

Test #3:

score: 0
Accepted
time: 21ms
memory: 3792kb

input:

11107
1 0
LLRLRURLR
1 0
LLRR
0 1
R
1 0
LLLRLRRR
1 0
RUL
0 1
UD
1 0
RLRLU
0 1
DDDUUUDU
1 0
RURRLLRLL
1 0
LRLR
1 0
ULR
0 1
R
0 1
DDUUUDR
0 1
UUDDUDDU
0 1
DDUUDU
1 0
RRLRLLRLRL
1 0
RLRRLL
1 0
LUR
1 0
U
1 0
LRRRLLLR
0 1
DRUUDDUDU
0 1
DUUDDUR
1 0
LRLRLR
0 1
UUDDDUDU
0 1
R
0 1
UDUDDU
0 1
DUUDUD
1 0
RRLRRR...

output:

URRRRLLLL
LLRR
R
LLLLRRRR
URL
DU
URRLL
DDDDUUUU
URRRRLLLL
LLRR
URL
R
RUUUDDD
DDDDUUUU
DDDUUU
LLLLLRRRRR
LLLRRR
URL
U
LLLLRRRR
RUUUUDDDD
RUUUDDD
LLLRRR
DDDDUUUU
R
DDDUUU
DDDUUU
LLLLLRRRRR
DDDDUUUU
DDUU
URRRRLLLL
DDUU
LLLRRR
URL
URL
U
URL
LLLRRR
LLLLLRRRRR
U
DDDUUU
R
LLLRRR
RUUUUDDDD
RUUUUDDDD
LLLRRR
...

result:

ok 11107 cases