QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#506340#6422. Evil CoordinateFoedere0WA 12ms3672kbC++233.6kb2024-08-05 16:49:472024-08-05 16:49:48

Judging History

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

  • [2024-08-05 16:49:48]
  • 评测
  • 测评结果:WA
  • 用时:12ms
  • 内存:3672kb
  • [2024-08-05 16:49:47]
  • 提交

answer

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<vector>
#include<stack>
#define int long long
//#define endl '\n'
using namespace std;
typedef pair<int,int> PII;
const int N=200200;
int n;
int x,y;
string s;
int o=0,p=0;
map<char,int> m;
void solve(){
	m.clear();
	o=0,p=0;
	cin>>x>>y>>s;
	string ans;
	ans.clear();
	if(x==0&&y==0){
		cout<<"Impossible"<<endl;
		return;
	}
	for(int i=0;i<s.size();i++){
		if(s[i]=='L') o--;
		if(s[i]=='R') o++;
		if(s[i]=='U') p++;
		if(s[i]=='D') p--;
		m[s[i]]++;
	}
	if(o==x&&p==y){
		cout<<"Impossible"<<endl;
		return;
	}
	if(x!=0&&y!=0){
		if(x!=o){
			    while(m['L']){
				    ans+='L';
			    	m['L']--;
			    }
		    	while(m['R']){
			    	ans+='R';
			    	m['R']--;
		    	}
	    	while(m['U']) ans+='U',m['U']--;
		    while(m['D']) ans+='D',m['D']--;
	    }
	    else{
		    while(m['D']){
			    ans+='D';
	    		m['D']--;
    		}
		    while(m['U']){
			    ans+='U';
			   	m['U']--;
			}
	    	while(m['L']) ans+='L',m['L']--;
	    	while(m['R']) ans+='R',m['R']--;
    	}
		cout<<ans<<endl;
		return;
	}
	if(x==0){
		int yy=0;
		bool st=0;
		if(o!=0){
			while(m['L']){
			    ans+='L';
			    m['L']--;
		    }
			while(m['R']) ans+='R', m['R']--;
			while(m['U']) ans+='U', m['U']--;
		    while(m['D']) ans+='D', m['D']--;
		}
		else{
		    if(m['L']) ans+='L',m['L']--;
		    else if(m['R']) ans+='R',m['R']--;
		    else  if(!m['L']&&!m['R']) st=1;
		    if(y>=0){
		    	yy=0;
			    while(m['D']){
			        ans+='D';
			        m['D']--;
			        yy--;
		        }
		        while(m['U']){
	        	    ans+='U';
	     	        yy++;
	     	        if(yy==y&&st==1){
	     			    cout<<"Impossible"<<endl;
	    			    return;
	    	    	}
	    	    	m['U']--;
	        	}
	    	}
	    	else{
	    		yy=0;
		      	while(m['U']){
		 	        ans+='U';
			        m['U']--;
			        yy++;
		        }
		        while(m['D']){
		    	    ans+='D';
			        yy--;
		        	if(yy==y&&st==1){
				        cout<<"Impossible"<<endl;
			    	    return;
		    	    }
	    	    	m['D']--;
        		}
	    	}
	    	while(m['L']) ans+='L', m['L']--;
	    	while(m['R']) ans+='R', m['R']--;
	    	while(m['U']) ans+='U', m['U']--;
		    while(m['D']) ans+='D', m['D']--;
	    }
	}
	else if(y==0){
		int xx=0;
		bool st=0;
		if(p!=0){
			while(m['U']){
			    ans+='U';
			    m['U']--;
		    }
			while(m['D']) ans+='D', m['D']--;
			while(m['L']) ans+='L', m['L']--;
	        while(m['R']) ans+='R', m['R']--;
		}
		else{
			if(m['U']) ans+='U',m['U']--;
		    else if(m['D']) ans+='D',m['D']--;
		    else if(!m['U']&&!m['D']) st=1;
		    if(x>=0){
		    	while(m['L']){
		    	    ans+='L';
		    	    xx--;
		    	    m['L']--;
		        }
		        while(m['L']){
	        		ans+='L';
			        xx--;
		    	    if(xx==x&&st){
			    	    cout<<"Impossible"<<endl;
			        	return;
		    	    }
		        	m['L']--;
        		}
	    	}
	    	else{
	    		while(m['R']){
	    		    ans+='R';
	    		    xx++;
	    		    m['R']--;
	    	    }
	    	     while(m['R']){
		            ans+='R';
		            xx++;
	     	        if(xx==x&&st){
	    		    	cout<<"Impossible"<<endl;
	    		    	return;
	        		}
		        	m['R']--;
		        }
    		}
	    	while(m['U']) ans+='U', m['U']--;
    		while(m['D']) ans+='D', m['D']--;
	    }
	}
	cout<<ans<<endl;
}
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int T=1;
	cin>>T;
	while(T--){
		solve();
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3612kb

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: -100
Wrong Answer
time: 12ms
memory: 3672kb

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:

UUDD
UUR
Impossible
Impossible
Impossible
RRUUUUUUD
LRRRRDD
UD
Impossible
LLLLRRDD
LLRRUDDD
Impossible
UUDDDDLLR

Impossible
DUUULRR
Impossible
Impossible
Impossible
LLLLLRRRDD
Impossible
R
Impossible
Impossible
Impossible
Impossible
Impossible
LLLRRRRRUU
LLLUD
Impossible
UUUDDD
DDUURR
Impossible
UR...

result:

wrong answer case 1, participant's output is not a permutation of the input