QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#612867 | #6422. Evil Coordinate | dyfhpu | WA | 0ms | 3584kb | C++17 | 1.7kb | 2024-10-05 13:14:06 | 2024-10-05 13:14:20 |
Judging History
answer
#include <iostream>
#include <cstring>
#include <map>
#include <cmath>
using namespace std;
#define int long long
void solve()
{
int x,y;cin>>x>>y;
string s;cin>>s;
map<char,int> mp;
int edx=0,edy=0;
for(int i=0;i<s.size();i++) {
mp[s[i]]++;
if(s[i]=='R') {
edx++;
}else if(s[i]=='L') {
edx--;
}else if(s[i]=='U') {
edy++;
}else {
edy--;
}
}
if(x>1e5||y>1e5||x<-1e5||y<-1e5) {
cout<<"Impossible"<<endl;
return ;
}
if(edx==x&&edy==y||x==0&&y==0) {
cout<<"Impossible"<<endl;
return ;
}
int sum1=mp['R'],sum2=mp['L'],sum3=mp['U'],sum4=mp['D'];
if((sum3-sum4)>=y&&y>=0&&x==0&&sum1==0&&sum2==0) {
cout<<"Impossile"<<endl;
return ;
}
if((sum1-sum2)>=x&&x>=0&&y==0&&sum3==0&&sum4==0) {
cout<<"Impossible"<<endl;
return ;
}
if((sum4-sum3)>=abs(y)&&y<=0&&x==0&&sum1==0&&sum2==0) {
cout<<"Impossible"<<endl;
return ;
}
if((sum2-sum1)>=abs(x)&&x<=0&&y==0&&sum3==0&&sum4==0) {
cout<<"Impossible"<<endl;
return ;
}
if(x>=0&&y>=0) {
while(sum2--) cout<<'L';
while(sum4--) cout<<'D';
while(sum1--) cout<<'R';
while(sum3--) cout<<'U';
cout<<endl;
}
else if(x>=0&&y<0) {
while(sum2--) cout<<'L';
while(sum3--) cout<<'U';
while(sum1--) cout<<'R';
while(sum4--) cout<<'D';
cout<<endl;
}
else if(x<0&&y>=0) {
while(sum1--) cout<<'R';
while(sum4--) cout<<'D';
while(sum3--) cout<<'U';
while(sum2--) cout<<'L';
cout<<endl;
}
else {
while(sum1--) cout<<'R';
while(sum3--) cout<<'U';
while(sum2--) cout<<'L';
while(sum4--) cout<<'D';
cout<<endl;
}
}
signed main()
{
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
详细
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:
LLDRRUU UUU Impossible Impossile Impossible
result:
wrong answer Line "Impossile" doesn't correspond to pattern "[UDLR]{1,100000}|Impossible"