QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#506150 | #6422. Evil Coordinate | chanal | WA | 0ms | 3584kb | C++14 | 3.6kb | 2024-08-05 15:43:14 | 2024-08-05 15:43:14 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int MAXSIZE=200005;
long long even[MAXSIZE],odd[MAXSIZE];
void solve() {
int mx,my;
cin>>mx>>my;
string str;
cin>>str;
map<char,int> mp;
for(int i=0; i<(int)str.size(); i++) {
mp[str[i]]++;//统计各个方向移动的指令数目
}
int end_x=mp['R']-mp['L'];//不要取绝对值就是算最后的坐标
int end_y=mp['U']-mp['D'];
if((mx==0&&my==0)||(end_x==mx&&end_y==my)) {
cout<<"Impossible"<<endl;
return;
}
int posx=0,posy=0;
if(end_x!=mx&&end_y!=my) { //如果两个最终的结果都不跟坐标相同
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
} else if(end_x!=mx&&end_y==my) {//若x不相同,但是y的坐标相同的话__地雷的点不在坐标轴上,但是在
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
} else if(end_y!=my&&end_x==mx) { //如果y最后不相同但是x相同,
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
cout<<endl;
return;
} else if(my==0) { //地雷在x轴上
if(end_y==0) { //最后落在x轴上
if(mx>0) { //如果
if(end_x>mx) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}return;
} else {
if(end_x<mx) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}return;
}
} else {
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}return;
}
} else if(mx==0) { //如果地雷在y轴上
if(end_x==0) { //最后落在y轴上
if(my>0) { //如果
if(end_y>my) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
return;
} else {
if(end_y<my) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
return;
}
} else {
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
return;
}
}
}
int main() {
int t;
cin>>t;
while(t--) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3584kb
input:
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
output:
LLRRUUD UUU Impossible UUU Impossible
result:
wrong answer case 4, participant's output goes through forbidden coordinate