QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#506070#6422. Evil CoordinateAbclCompile Error//C++142.1kb2024-08-05 15:02:262024-08-05 15:02:26

Judging History

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

  • [2024-08-05 15:02:26]
  • 评测
  • [2024-08-05 15:02:26]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
using namespace std;
void solve() {
	int mx,my;
	cin>>mx>>my;
	string str;
	cin>>str;
	if(mx==0&&my==0) {
		cout<<"Impossible"<<endl;
		return;
	}
	if(mx==end_x&&my==end_y){
		cout<<"Impossible"<<endl;
		return;
	}
	unordered_map<char,int> mp;
	for(int i=0; i<str.length(); i++) {
		mp[str[i]]++;//统计各个方向移动的指令数目
	}
	int end_x=mp['R']-mp['L'];//不要取绝对值就是算最后的坐标
	int end_y=mp['U']-mp['D'];
	
	if(end_x!=mx&&end_y!=my) { //如果两个最终的结果都不跟坐标相同
		int nowx=0,nowy=0;
		while(mp['L']+mp['R']+mp['U']+mp['D']){
			if(nowx+1!=mx&&nowy!=my&&mp['R']){
				mp['R']--;nowx++;
				cout<<'R';	
			}
			else if(nowx-1!=mx&&nowy!=my&&mp['L']){
				mp['L']--;nowx--;
				cout<<'L';	
			}
			else if(nowx!=mx&&nowy+1!=my&&mp['U']){
				mp['U']--;nowy++;
				cout<<'U';	
			}
			else if(nowx!=mx&&nowy-1!=my&&mp['D']){
				mp['D']--;nowy--;
				cout<<'D';	
			}			
		}
		cout<<endl;
		return;
	} 
	
	else if(end_x!=mx&&end_y==my) {//若x不相同,但是y的坐标相同的话
	
			if(mx>0&&end_x>mx){
				cout<<"Impossible"<<endl;
				return;
			}
			else if(mx<0&&end_x<mx){
					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['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相同,
			if(my>0&&end_y>my){
				cout<<"Impossible"<<endl;
				return;
			}
			else if(my<0&&end_y<my){
				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';
			}
			cout<<endl;
			return;
	} 
	
}
signed main() {
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t;
	cin>>t;
	while(t--) {
		solve();
	}
}

Details

answer.code: In function ‘void solve()’:
answer.code:13:16: error: ‘end_x’ was not declared in this scope
   13 |         if(mx==end_x&&my==end_y){
      |                ^~~~~
answer.code:13:27: error: ‘end_y’ was not declared in this scope
   13 |         if(mx==end_x&&my==end_y){
      |                           ^~~~~