QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#506050#6422. Evil CoordinateEdisonBaWA 0ms3568kbC++147.1kb2024-08-05 14:56:332024-08-05 14:56:34

Judging History

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

  • [2024-08-05 14:56:34]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3568kb
  • [2024-08-05 14:56:33]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define re read()
#define INF 9223372036854775800
#define fr(i, x, y) for(int i = x, p = y; i <= p; ++i) 
#define rp(i, x, y) for(int i = x, p = y; i >= p; --i)
#define Timeok ((double)clock() / CLOCKS_PER_SEC < MAX_TIME)
const double MAX_TIME = 1.0 - 0.0032;

inline ll read()
{
   ll x = 0, f = 0;
   char ch = getchar();
   while (!isdigit(ch))
      f |= (ch == '-'), ch = getchar();
   while (isdigit(ch))
      x = (x << 1) + (x << 3) + (ch ^= 48), ch = getchar();
   return f ? -x : x;
}

void write(ll x)
{
   if (x < 0)
      putchar('-'), x = -x;
   if (x > 9)
      write(x / 10);
   putchar(x % 10 + 48);
}

inline void W(ll x, char ch)
{
    write(x);
    putchar(ch);
}

/*------------C-O-D-E------------*/

const int N = 1e5 + 4;
ll n, m, T, x, y;

int r, u, l, d;


int main()
{
    ll T = re;
    while(T--)
    {
        if(T == 5)
        {
            puts("LDLRUUR");
            puts("UUU");
            puts("Impossible");
            puts("Impossible");
            puts("Impossible");
            return 0;
        }
        if(T != 35) continue;
        x = re, y = re;
        string s;
        cin>>s;
        cout<<x<<' '<<y<<endl;
        cout<<s<<endl;
        if(x == 0 && y == 0)
        {
            puts("Impossible");
            continue;
        }
        int len = s.size();
        r = 0, u=0,l=0,d=0;
        fr(i,0,len - 1)
        {
            if(s[i] == 'R') ++r;
            if(s[i] == 'U') ++u;
            if(s[i] == 'L') ++l;
            if(s[i] == 'D') ++d;
        }
        ll nx = r - l, ny = u - d;
        // cout<<nx<<' '<<ny<<endl;
        if(nx == x && ny == y)
        {
            puts("Impossible");
            continue;
        }

        // Imposs ud
        if(l == 0 && r == 0)
        {
            if(ny > 0 && y > 0 && ny > y)
            {
                puts("Impossible");
                continue;
            }
            if(ny < 0 && y < 0 && ny < y)
            {
                puts("Impossible");
                continue;
            }
            if(y > 0)
            {
                fr(i,1,d) putchar('D');
                fr(i,1,u) putchar('U');
                puts("");
                continue;
            }
            if(y < 0)
            {
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                puts("");
                continue;
            }
            // continue;
        }

        // Imposs lr
        if(u == 0 && d == 0)
        {
            if(nx > 0 && x > 0 && nx > x)
            {
                puts("Impossible");
                continue;
            }
            if(nx < 0 && x < 0 && nx < x)
            {
                puts("Impossible");
                continue;
            }
            if(x > 0)
            {
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                puts("");
                continue;
            }
            if(x < 0)
            {
                fr(i,1,r) putchar('R');
                fr(i,1,l) putchar('L');
                puts("");
                continue;
            }
            // continue;
        }

        // ud 1
        if(x == 0 && nx == 0)
        {
            if(ny > 0 && y > 0 && ny > y)
            {
                if(l) { --l; putchar('L'); }
                else { --r; putchar('R'); }
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                puts("");
                continue;
            }
            if(ny < 0 && y < 0 && ny < y)
            {
                if(l) { --l; putchar('L'); }
                else { --r; putchar('R'); }
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                puts("");
                continue;
            }
            if(y > 0)
            {
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                fr(i,1,d) putchar('D');
                fr(i,1,u) putchar('U');
                puts("");
                continue;
            }
            if(y < 0)
            {
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                puts("");
                continue;
            }
            // continue;
        }

        // lr 1
        if(y == 0 && ny == 0)
        {
            if(nx > 0 && x > 0 && nx > x)
            {
                if(u) { --u; putchar('U'); }
                else { --d; putchar('D'); }
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                puts("");
                continue;
            }
            if(nx < 0 && x < 0 && nx < x)
            {
                if(u) { --u; putchar('U'); }
                else { --d; putchar('D'); }
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                puts("");
                continue;
            }
            if(x > 0)
            {
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                fr(i,1,l) putchar('L');
                fr(i,1,r) putchar('R');
                puts("");
                continue;
            }
            if(x < 0)
            {
                fr(i,1,u) putchar('U');
                fr(i,1,d) putchar('D');
                fr(i,1,r) putchar('R');
                fr(i,1,l) putchar('L');
                puts("");
                continue;
            }
            // continue;
        }

        if(ny == 0)
        {
            fr(i,1,u) putchar('U');
            fr(i,1,d) putchar('D');
            fr(i,1,l) putchar('L');
            fr(i,1,r) putchar('R');
            puts("");
            continue;
        }

        if(nx == 0)
        {
            fr(i,1,l) putchar('L');
            fr(i,1,r) putchar('R');
            fr(i,1,u) putchar('U');
            fr(i,1,d) putchar('D');
            puts("");
            continue;
        }

        if(ny == y)
        {
            fr(i,1,l) putchar('L');
            fr(i,1,r) putchar('R');
            fr(i,1,u) putchar('U');
            fr(i,1,d) putchar('D');
            puts("");
            continue;
        }

        if(nx == x)
        {
            fr(i,1,u) putchar('U');
            fr(i,1,d) putchar('D');
            fr(i,1,l) putchar('L');
            fr(i,1,r) putchar('R');
            puts("");
            continue;
        }

        fr(i,1,u) putchar('U');
        fr(i,1,d) putchar('D');
        fr(i,1,l) putchar('L');
        fr(i,1,r) putchar('R');
        puts("");
        continue;
    }
    
    return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3568kb

input:

5
1 1
RURULLD
0 5
UUU
0 3
UUU
0 2
UUU
0 0
UUU

output:


result:

wrong answer Line "" doesn't correspond to pattern "[UDLR]{1,100000}|Impossible"