QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#713120#9521. Giving Directions in HarbinProaesAC ✓3ms3812kbC++202.3kb2024-11-05 18:10:292024-11-05 18:10:29

Judging History

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

  • [2024-11-05 18:10:29]
  • 评测
  • 测评结果:AC
  • 用时:3ms
  • 内存:3812kb
  • [2024-11-05 18:10:29]
  • 提交

answer

/**
 *    title:  c.cpp
 *    author:  Proaes Meluam
 *    created:  2024-11-05 17:33:42
**/
#include <bits/stdc++.h>
#ifdef LOCAL
#include "algo/debug.h" 
#else
#define debug(...) 42
#endif
using namespace std;
using ll = long long;
using ull = unsigned long long;
const double pi = acos(-1);
const double E = exp(1);
constexpr ll mod = 1e9 + 7;
// constexpr int inf = 0x3f3f3f3f;
constexpr ll inf = 0x3f3f3f3f3f3f3f3f;

int check(char a, char b){
    if(a=='S'&&b=='E'){
        return 'L';
    }
    if(a=='S'&&b=='W'){
        return 'R';
    }

    if(a=='E'&&b=='N'){
        return 'L';
    }
    if(a=='E'&&b=='S'){
        return 'R';
    }

    if(a=='N'&&b=='W'){
        return 'L';
    }
    if(a=='N'&&b=='E'){
        return 'R';
    }
    
    if(a=='W'&&b=='N'){
        return 'R';
    }
    if(a=='W'&&b=='S'){
        return 'L';
    }
    
}

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int tt;
    cin>>tt;
    while(tt--){
        int n;
        cin>>n;
        vector<char>a(n);
        vector<int>b(n);
        for(int i=0;i<n;i++){
            cin>>a[i];
            cin>>b[i];
        }
        // for(int i=0;i<n;i++){
        //     cout<<a[i]<<" ";
        // }
        vector<tuple<char, int>>tl;
        tl.emplace_back(a[0], -1);
        tl.emplace_back('Z', b[0]);
        for(int i=1;i<n;i++){
            if(check(a[i-1],a[i]) == 'R'){
                tl.emplace_back('R', -1);
                tl.emplace_back('Z', b[i]);
                // cout<<"R"<<"\n"<<"Z"<<" "<<b[i]<<"\n";
            }else if(check(a[i-1],a[i])=='L'){
                tl.emplace_back('L', -1);
                tl.emplace_back('Z', b[i]);
                // cout<<"L"<<"\n"<<"Z"<<" "<<b[i]<<"\n";
            }
        }
        int len = tl.size();
        cout << len - 1 << " " << a[0] << "\n";
        for(int i=1; i < len; i++){
            char c = get<0>(tl[i]);
            int m = get<1>(tl[i]);
            if (m == -1) {
                cout << c << "\n";
            } else {
                cout << c << " " << m << "\n";
            }
            // if(c1 == 'R'){
            //     cout<<c1<<"\n"<<c2<<" "<<m<<"\n";
            // }else if(c1 == 'L'){
            //     cout<<c1<<"\n"<<c2<<" "<<m<<"\n";
            // }
        }
    }
}

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

详细

Test #1:

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

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: 0ms
memory: 3812kb

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: 3ms
memory: 3792kb

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