QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#612821#6422. Evil CoordinatedyfhpuCompile Error//C++174.7kb2024-10-05 13:05:222024-10-05 13:05:23

Judging History

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

  • [2024-10-05 13:05:23]
  • 评测
  • [2024-10-05 13:05:22]
  • 提交

answer

#include <iostream>
#include <cstring>
#include <map>
#include <cmath>
using namespace std;#include <bits/stdc++.h>

using namespace std;
int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};


void solve()
{
    int x,y;cin>>x>>y;
    string s;cin>>s;
    string ans = "";
    int len=s.size();
    map<char,int> mp;
    int edx=0,edy=0;
    map<int, char> p;
    p[0] = 'U', p[1] = 'R', p[2] = 'D', p[3] = 'L';


    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(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<<"Impossible"<<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 ;
    }
    int ex=0,ey=0;


    for (int i = 0; i < s.size(); i ++){

        bool f = false;

        for (int j = 0; j < 4; j ++){
            // if (i == 2){
            //     cout << j << endl;

            // }
            if (!mp[p[j]]) continue;

            int tx = ex + dx[j], ty = ey + dy[j];
            

            if (tx != x || ty != y){
                f = true;
                ex = tx, ey = ty;
                ans += p[j];
                mp[p[j]] --;
                swap(p[0], p[2]);
                swap(p[1], p[3]);
                swap(dx[0], dx[2]);
                swap(dx[1], dx[3]);
                swap(dy[0], dy[2]);
                swap(dy[1], dy[3]);
                break;
            }
            // reverse(a, a + n);
            

        }

        // cout << f << ' ' << ex << ' ' << ey << endl;
        if (!f) break;
    }

    int o = -1;
    for (int i = 0; i < 4; i ++){
        if (mp[p[i]]){
            o = i;
            break;
        }
    }

    string pp(mp[p[o]], p[o]);



    // for (int i = 0; i < 4; i ++) cout << p[i] << ' ' << mp[p[i]] << endl;
    ans = pp + ans;
    
    cout << ans << endl;


}
int main()
{
    int t;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
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(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<<"Impossible"<<endl;
		return ;
	}
	else if((sum3-sum4)<y&&y>=0&&x==0&&sum1==0&&sum2==0){
		while(sum4--) cout<<"D";
		while(sum3--) cout<<"U";
		cout<<endl;
		return ;
	}
	if((sum1-sum2)>=x&&x>=0&&y==0&&sum3==0&&sum4==0) {
		cout<<"Impossible"<<endl;
		return ;
	}
	else if((sum1-sum2)<x&&x>=0&&y==0&&sum3==0&&sum4==0){
		while(sum2--) cout<<"L";
		while(sum1--) cout<<"R";
		cout<<endl;
		return ;
	}
	if((sum4-sum3)>=abs(y)&&y<=0&&x==0&&sum1==0&&sum2==0) {
		cout<<"Impossible"<<endl;
		return ;
	}
	else if((sum4-sum3)<abs(y)&&y<=0&&x==0&&sum1==0&&sum2==0){
		while(sum3--) cout<<"U";
		while(sum4--) cout<<"D";
		cout<<endl;
		return ;
	}
	if((sum2-sum1)>=abs(x)&&x<=0&&y==0&&sum3==0&&sum4==0) {
		cout<<"Impossible"<<endl;
		return ;
	}
	else if((sum2-sum1)<abs(x)&&x<=0&&y==0&&sum3==0&&sum4==0){
		while(sum1--) cout<<"R";
		while(sum2--) cout<<"L";
		cout<<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;
	}
}
int main()
{
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

详细

answer.code:5:21: error: stray ‘#’ in program
    5 | using namespace std;#include <bits/stdc++.h>
      |                     ^
answer.code:5:22: error: ‘include’ does not name a type
    5 | using namespace std;#include <bits/stdc++.h>
      |                      ^~~~~~~
answer.code:128:6: error: redefinition of ‘void solve()’
  128 | void solve()
      |      ^~~~~
answer.code:11:6: note: ‘void solve()’ previously defined here
   11 | void solve()
      |      ^~~~~
answer.code:224:5: error: redefinition of ‘int main()’
  224 | int main()
      |     ^~~~
answer.code:119:5: note: ‘int main()’ previously defined here
  119 | int main()
      |     ^~~~