QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#688605#9521. Giving Directions in Harbinucup-team3548AC ✓10ms3564kbC++204.4kb2024-10-30 11:25:312024-10-30 11:25:36

Judging History

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

  • [2024-10-30 11:25:36]
  • 评测
  • 测评结果:AC
  • 用时:10ms
  • 内存:3564kb
  • [2024-10-30 11:25:31]
  • 提交

answer

#include <cstdio>
#include <vector>
#include <cstring>
#include <climits>
#include <iostream>
#include <algorithm>
using namespace std;
#define il inline
#define rr read()
#define wr puts()
#define bl putchar(' ')
#define in int
#define max(x, y) (x > y ? x : y)
#define min(x, y) (x < y ? x : y)
#define rep(i, l, n) for (in i = l; i >= n; i--)
#define int long long
il int read()
{
    char ch;
    bool f = 0;
    while ((ch = getchar()) < '0' || ch > '9')
        (ch == '-') && (f = 1);
    in x = ch ^ '0';
    while ((ch = getchar()) <= '9' && ch >= '0')
        x = (x << 1) + (x << 3) + (ch ^ '0');
    return f ? -x : x;
}

il void print(in x)
{
    if (x < 0)
        putchar('-'), x = -x;
    if (x >= 10)
        print(x / 10);
    putchar(x % 10 ^ '0');
}

const int MAXN = 4e6 + 100;

void solve()
{
    int n;
    cin >> n;
    vector<string> ans;
    string to;
    for (int i = 1; i <= n; ++i)
    {
        string toward;

        string dis;
        cin >> toward >> dis;
        if (i == 1)
        {
            ans.emplace_back(toward);
            string temp = "Z ";
            temp += dis;
            ans.emplace_back(temp);
            to = toward;
            continue;
        }

        if (to == "S")
        {
            if (toward == "N")
            {
                ans.emplace_back("L");
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "E")
            {
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "W")
            {
                ans.emplace_back("R");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
        }

        if (to == "N")
        {
            if (toward == "S")
            {
                ans.emplace_back("L");
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "E")
            {
                ans.emplace_back("R");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "W")
            {
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
        }

        if (to == "E")
        {
            if (toward == "W")
            {
                ans.emplace_back("L");
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "N")
            {
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "S")
            {
                ans.emplace_back("R");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
        }

        if (to == "W")
        {
            if (toward == "E")
            {
                ans.emplace_back("L");
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "S")
            {
                ans.emplace_back("L");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
            if (toward == "N")
            {
                ans.emplace_back("R");
                string temp = "Z ";
                temp += dis;
                ans.emplace_back(temp);
            }
        }
        to = toward;
    }
    cout << ans.size() - 1 << " ";
    for (int i = 0; i < ans.size(); ++i)
    {
        cout << ans[i] << "\n";
    }
}

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

1
2
S 2
E 1

output:

3 S
Z 2
L
Z 1

result:

ok ok (1 test case)

Test #2:

score: 0
Accepted
time: 1ms
memory: 3564kb

input:

99
4
E 6
N 1
W 2
S 8
8
W 10
N 1
E 10
S 2
E 2
N 2
W 2
S 1
9
N 5
E 4
N 7
E 6
S 9
E 8
N 4
W 6
N 7
6
N 6
E 6
N 8
W 9
S 7
E 2
8
E 6
S 9
W 5
S 4
W 6
N 4
E 5
N 9
8
N 6
W 10
N 6
W 6
S 6
E 6
S 6
E 10
10
N 7
W 3
N 5
W 5
S 8
W 10
N 6
E 9
N 8
E 8
8
W 9
N 10
E 6
S 10
E 9
S 10
W 6
N 10
4
W 5
N 1
E 5
S 1
4
W 4
S 8...

output:

7 E
Z 6
L
Z 1
L
Z 2
L
Z 8
15 W
Z 10
R
Z 1
R
Z 10
R
Z 2
L
Z 2
L
Z 2
L
Z 2
L
Z 1
17 N
Z 5
R
Z 4
L
Z 7
R
Z 6
R
Z 9
L
Z 8
L
Z 4
L
Z 6
R
Z 7
11 N
Z 6
R
Z 6
L
Z 8
L
Z 9
L
Z 7
L
Z 2
15 E
Z 6
R
Z 9
R
Z 5
L
Z 4
R
Z 6
R
Z 4
R
Z 5
L
Z 9
15 N
Z 6
L
Z 10
R
Z 6
L
Z 6
L
Z 6
L
Z 6
R
Z 6
L
Z 10
19 N
Z 7
L
Z 3
R
Z 5
...

result:

ok ok (99 test cases)

Test #3:

score: 0
Accepted
time: 10ms
memory: 3532kb

input:

10000
1
W 9
1
N 3
10
W 10
N 7
W 5
S 9
W 9
S 8
E 9
S 6
E 5
S 5
2
E 8
S 10
2
N 7
W 5
5
S 4
W 3
S 7
E 4
N 7
8
N 7
E 8
N 3
E 9
S 5
W 5
S 9
W 10
9
W 9
S 6
E 6
N 8
W 5
N 6
W 3
N 8
W 7
3
S 9
W 2
N 10
5
N 6
E 4
N 6
E 10
N 1
10
S 7
W 4
N 3
E 5
S 7
W 8
N 2
E 8
N 4
W 8
8
S 9
W 1
N 4
E 6
N 1
W 8
N 6
W 6
4
W 10
...

output:

1 W
Z 9
1 N
Z 3
19 W
Z 10
R
Z 7
L
Z 5
L
Z 9
R
Z 9
L
Z 8
L
Z 9
R
Z 6
L
Z 5
R
Z 5
3 E
Z 8
R
Z 10
3 N
Z 7
L
Z 5
9 S
Z 4
R
Z 3
L
Z 7
L
Z 4
L
Z 7
15 N
Z 7
R
Z 8
L
Z 3
R
Z 9
R
Z 5
R
Z 5
L
Z 9
R
Z 10
17 W
Z 9
L
Z 6
L
Z 6
L
Z 8
L
Z 5
R
Z 6
L
Z 3
R
Z 8
L
Z 7
5 S
Z 9
R
Z 2
R
Z 10
9 N
Z 6
R
Z 4
L
Z 6
R
Z 10
L
...

result:

ok ok (10000 test cases)

Extra Test:

score: 0
Extra Test Passed