QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#533539#5077. Card GameTiga_Pilot_2TL 40ms5232kbC++204.4kb2024-08-26 02:57:592024-08-26 02:57:59

Judging History

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

  • [2024-08-26 02:57:59]
  • 评测
  • 测评结果:TL
  • 用时:40ms
  • 内存:5232kb
  • [2024-08-26 02:57:59]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define sim template < class c
#define ris return * this
#define dor > debug & operator <<
#define eni(x) sim > typename \
    enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) {
sim > struct rge {c b, e;};
sim > rge<c> range(c i, c j) {return rge<c>{i,j};}
sim > auto dud(c* x) -> decltype(cerr << *x, 0);
sim > char dud(...);
struct debug{
    ~debug() {cerr << endl;}
    eni(!=) cerr << boolalpha << i; ris; }
    eni(==) ris << range(begin(i), end(i)); }
    sim, class b dor(pair <b, c> d) {
        ris <<"(" <<d.fi <<", " <<d.se <<")";
    }
    sim dor(rge<c> d) {
        *this << "[";
        for(auto it=d.b;it!=d.e;++it) {
            *this <<", " + 2*(it==d.b) <<*it;
        }
        ris << "]";
    }
};
#define imie(...) "[" <<#__VA_ARGS__ ": " << (__VA_ARGS__) <<"]"

#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define per(i, a, b) for(int i = a; i > (b); --i)
#define ar array
#define sz(x) (int) (x).size()
#define pii pair<int,int>
#define fi first
#define se second
typedef long long ll;
typedef pair<ll,ll> pll;
typedef pair<double,double> pdd;
typedef pair<double,int> pdi;
typedef vector<int> vi;
#define all(x) (x).begin(), (x).end()

template<typename T>
void min_self(T& A, T B) {
    A = min(A,B);
}
template<typename T>
void max_self(T& A, T B) {
    A = max(A,B);
}

const int mxn=25;
int n,m;
string s[mxn];

using pipi = pair<pii,pii>;
void solve() {
    cin >>n >>m;
    rep(i,0,n) {
        cin >>s[i];
    }
    map<pipi,int> sg;
    for(int len1=1;len1<=n+m-1;len1+=2) {
        rep(imj1,-m+1,n) {
            int imj2 = imj1+len1-1;
            if(imj2>=n) break;
            for(int len2=1;len2<=n+m-1;len2+=2) {
                for(int ipj1 = (imj1+n*m*2)%2;ipj1<n+m-1;ipj1+=2) {
                    int ipj2 = ipj1+len2-1;
                    if(ipj2>=n+m-1) break;
                    pipi st = {{imj1,imj2},{ipj1,ipj2}};
                    set<int> mx;
                    for(int imji=imj1;imji<=imj2;imji+=2) {
                        for(int ipji=ipj1; ipji<=ipj2;ipji+=2) {
                            int i = (imji+ipji)/2;
                            int j = (ipji-imji)/2;
                            if(i>=0&&i<n&&j>=0&&j<m) {
                                int temp = 0;
                                if(s[i][j]=='R') {
                                    temp ^= sg[{{imj1,imj2},{ipj1,ipji-2}}];
                                    temp ^= sg[{{imj1,imj2},{ipji+2,ipj2}}];
                                } else if(s[i][j]=='B') {
                                    temp ^= sg[{{imj1,imji-2},{ipj1,ipj2}}];
                                    temp ^= sg[{{imji+2,imj2},{ipj1,ipj2}}];
                                } else {
                                    pii kiri = {imj1,imji-2}, knn = {imji+2,imj2}, ats={ipj1,ipji-2}, bwh = {ipji+2,ipj2}; 
                                    temp ^= sg[{kiri,ats}];
                                    temp ^= sg[{kiri,bwh}];
                                    temp ^= sg[{knn,ats}];
                                    temp ^= sg[{knn,bwh}];
                                }
                                mx.insert(temp);
                            }
                        }
                    }
                    int mxi = 0;
                    for(auto a : mx) {
                        if(a==mxi) {
                            mxi++;
                        } else {
                            break;
                        }
                    }
                    sg[st] = mxi;
                    // debug() <<imie(st) imie(mxi);
                }
            }
        }
    }
    int kr1 = (-m+1),kr2=kr1+1;
    int kn1 = n-1,kn2=kn1-1;
    if(((kn1-kr1)%2)) {
        swap(kn1,kn2);
    }
    int bwh1 = 0, bwh2=1;
    int ats1 = n+m-2, ats2=ats1-1;
    if(ats1%2) {
        swap(ats1,ats2);
    }
    if((kr1-bwh1)%2) {
        swap(bwh1,bwh2);
        swap(ats1,ats2);
    }
    int ans = sg[{{kr1,kn1},{bwh1,ats1}}]^sg[{{kr2,kn2},{bwh2,ats2}}];
    // debug() <<imie(kr1) imie(kn1) imie(bwh1) imie(ats1);
    // debug() <<imie(kr2) imie(kn2) imie(bwh2) imie(ats2);
    if(ans) {
        cout <<"W\n";
    } else {
        cout <<"L\n";
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

1 3
BBB


output:

W

result:

ok single line: 'W'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3888kb

input:

2 3
BBG
RGR


output:

W

result:

ok single line: 'W'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

2 2
GG
GG


output:

L

result:

ok single line: 'L'

Test #4:

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

input:

1 10
RRRRRRRRRR

output:

L

result:

ok single line: 'L'

Test #5:

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

input:

1 11
BBBBBBBBBBB

output:

W

result:

ok single line: 'W'

Test #6:

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

input:

10 1
G
G
G
G
G
G
G
G
G
G

output:

L

result:

ok single line: 'L'

Test #7:

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

input:

11 1
R
R
R
R
R
R
R
R
R
R
R

output:

W

result:

ok single line: 'W'

Test #8:

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

input:

2 20
BBGGBGBGGBBGGBGGBGGG
GGBBBGBGBBBGBGGGGGGG

output:

L

result:

ok single line: 'L'

Test #9:

score: 0
Accepted
time: 9ms
memory: 4320kb

input:

2 20
GBGBGBBBGGGGGBGGBBBB
GGGBBBGBGBGBGGBGBGGB

output:

W

result:

ok single line: 'W'

Test #10:

score: 0
Accepted
time: 7ms
memory: 4412kb

input:

2 21
GBBBBBBGGBGGBBBGBGGBG
GBBBGBBBGBBBGGBGBBGBB

output:

L

result:

ok single line: 'L'

Test #11:

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

input:

2 21
GGGBBBGBBGBGGBBGGGBGG
BGBBGBBBBBBGBBBBGGGBB

output:

W

result:

ok single line: 'W'

Test #12:

score: 0
Accepted
time: 8ms
memory: 4132kb

input:

20 2
BG
GG
BG
GB
BB
GB
BG
GG
BB
BB
BB
BB
BG
BB
BG
GG
BB
BG
GB
BG

output:

L

result:

ok single line: 'L'

Test #13:

score: 0
Accepted
time: 8ms
memory: 4144kb

input:

20 2
BB
GB
GG
GG
GB
BG
GG
GB
BB
BB
GG
GB
BB
BG
BB
BB
BG
BG
BG
BG

output:

W

result:

ok single line: 'W'

Test #14:

score: 0
Accepted
time: 6ms
memory: 4244kb

input:

21 2
GB
BG
BB
BG
GB
BG
BG
BG
GG
GG
GB
BG
GG
GB
GB
BG
GB
BG
BG
GG
GB

output:

L

result:

ok single line: 'L'

Test #15:

score: 0
Accepted
time: 11ms
memory: 4188kb

input:

21 2
BG
BB
GG
GB
BG
BB
GB
GG
BG
GG
BB
GG
BG
BB
GB
GB
GB
BG
BB
BG
GG

output:

W

result:

ok single line: 'W'

Test #16:

score: 0
Accepted
time: 6ms
memory: 4152kb

input:

2 20
BRRBBBBRBBBBBBBRBBBB
RBRRRBRBBBBRRRBBBRRR

output:

L

result:

ok single line: 'L'

Test #17:

score: 0
Accepted
time: 7ms
memory: 4144kb

input:

2 20
BRBBBBBRRRBBRBRBRRBB
BBBBRBRRRBBRRRRRBBBB

output:

W

result:

ok single line: 'W'

Test #18:

score: 0
Accepted
time: 7ms
memory: 4128kb

input:

2 21
BBRRRRRBRBRRBRBBRBRBR
RBBRBBRRRRRBRBBBRRBBB

output:

L

result:

ok single line: 'L'

Test #19:

score: 0
Accepted
time: 3ms
memory: 4216kb

input:

2 21
RBBBRBBBBBBBRRRRRRRBB
BRRRRRBRBBRBBBBRBRBRR

output:

W

result:

ok single line: 'W'

Test #20:

score: 0
Accepted
time: 6ms
memory: 4100kb

input:

20 2
BB
BR
BB
BB
RR
RR
RR
BB
BR
RR
BR
RR
BR
BB
BR
BB
RR
BB
BR
BR

output:

L

result:

ok single line: 'L'

Test #21:

score: 0
Accepted
time: 6ms
memory: 4036kb

input:

20 2
BB
RR
RR
BR
BB
BR
RR
RB
BR
RB
RB
RR
RB
RB
BB
BR
BR
RR
BR
RR

output:

W

result:

ok single line: 'W'

Test #22:

score: 0
Accepted
time: 7ms
memory: 4288kb

input:

21 2
BR
BB
BB
BB
BR
RR
RB
BR
BB
RB
RR
RR
RB
BB
RR
BR
BR
RR
RB
RR
RB

output:

L

result:

ok single line: 'L'

Test #23:

score: 0
Accepted
time: 7ms
memory: 4244kb

input:

21 2
BR
BR
BB
BB
BR
BB
RB
RB
RR
RR
RR
RB
RB
RB
RB
BR
RB
BB
BB
BB
BR

output:

W

result:

ok single line: 'W'

Test #24:

score: 0
Accepted
time: 35ms
memory: 5044kb

input:

3 24
GGRGGGRGRGGRRGGGRRGRRGGR
RGRRGGGGRGRGGGGGRRRRGGGG
GRRGGRRRGGGGRRGRGGGGRRGG

output:

L

result:

ok single line: 'L'

Test #25:

score: 0
Accepted
time: 33ms
memory: 4744kb

input:

3 24
GGGRGRGGRGRGRGGRGGGRRRRR
RRRRGGRGRGGGRRGRGRRRGRRR
GGRGGRGRRRRGGGGGGRGRGRRR

output:

W

result:

ok single line: 'W'

Test #26:

score: 0
Accepted
time: 34ms
memory: 5212kb

input:

3 25
RRRRRGRRGGRRRRRRGRGGRRRGG
GGGGRGRGGRRRRRGRGRGRGRRRR
RGGRRRRRGGGGGRRRGGGGGGGRG

output:

L

result:

ok single line: 'L'

Test #27:

score: 0
Accepted
time: 40ms
memory: 4972kb

input:

3 25
RRGRGRRGRGRGGRGGRRGGRRRGG
RGRRGRRGRGGGGGRGGRRRGGGGG
RRGGRRGRGGGGGRGRGRRRRGRRG

output:

W

result:

ok single line: 'W'

Test #28:

score: 0
Accepted
time: 30ms
memory: 5036kb

input:

24 3
RGG
GRG
GRR
GGG
GGG
RGR
GRG
RGG
RRG
GRR
GGR
GRR
GGR
GRR
RGR
RGR
GRR
GRG
RGR
RRG
RRG
RGR
GGG
RRG

output:

L

result:

ok single line: 'L'

Test #29:

score: 0
Accepted
time: 28ms
memory: 4736kb

input:

24 3
GRG
GGR
RGG
GRR
RRR
GRR
RRG
GGR
GGR
RGR
GRR
GGR
RGR
GRR
RRG
GGR
GRR
RGR
GRG
GGG
GRG
RRR
RRG
GRG

output:

W

result:

ok single line: 'W'

Test #30:

score: 0
Accepted
time: 39ms
memory: 4880kb

input:

25 3
RGR
RGG
GGG
GGR
RGG
GGR
GGR
RRG
GGG
GGR
GRR
GRG
RRR
GGG
RGG
RGG
GRG
RGG
RRR
GGG
RGR
RGR
RGG
GRG
GGR

output:

L

result:

ok single line: 'L'

Test #31:

score: 0
Accepted
time: 39ms
memory: 4876kb

input:

25 3
RRG
RGG
GRR
RGG
RGG
RRR
RRR
GRG
GRG
GGG
RGG
RRG
RRG
RRG
GGR
GGG
GGG
RGR
GGG
GGR
GGR
GRG
RRG
RGG
GRG

output:

W

result:

ok single line: 'W'

Test #32:

score: 0
Accepted
time: 20ms
memory: 4732kb

input:

3 24
RRRBBRBBBBBBBBBBBBBBRBRR
BRBRRBBRBRBRRBBRRBRBBBBB
RRBRBBBRBBBRBRBBBBBBBBRB

output:

L

result:

ok single line: 'L'

Test #33:

score: 0
Accepted
time: 21ms
memory: 5052kb

input:

3 24
BRBRRBBRBRRBRRRBBBRBRRBB
BRBBRBBBBBRBRRRBRRRRRBBR
BRBRBBRRRBRBRRBBBBRRBRRB

output:

W

result:

ok single line: 'W'

Test #34:

score: 0
Accepted
time: 25ms
memory: 4936kb

input:

3 25
BBRRBBBBBBBRBBBRBRBRBRBBB
RRRBBBBRRRRBRRRRRBBBBRBRB
RRRRRBRRBRRBRBRRRBBRRBRRR

output:

L

result:

ok single line: 'L'

Test #35:

score: 0
Accepted
time: 24ms
memory: 5028kb

input:

3 25
BBRBBBBBRBBBBBRRRRRRBBRRB
RRRBBRRRBBRBBBRRRBBBBBRBR
BBRBRRRBRBBRRRRRRRRBBRRRB

output:

W

result:

ok single line: 'W'

Test #36:

score: 0
Accepted
time: 17ms
memory: 4812kb

input:

24 3
RBR
RBB
BRB
BBR
BRR
BRR
RRR
BBR
RBR
RBB
RBR
RBR
BBB
BBB
BBR
RRB
RRB
RBR
RRR
RRB
BRB
RRR
BBR
RBB

output:

L

result:

ok single line: 'L'

Test #37:

score: 0
Accepted
time: 16ms
memory: 5028kb

input:

24 3
RRR
RBB
BBR
RBB
RBB
BRR
BBR
BRR
BBB
BBR
RRB
RRR
RBB
RRR
RRB
RRR
RRB
RRR
RBB
RBR
RRB
BRB
RBR
BBB

output:

W

result:

ok single line: 'W'

Test #38:

score: 0
Accepted
time: 25ms
memory: 5232kb

input:

25 3
BBR
BRB
RBB
RRR
BBR
RRR
RBB
BBR
BRR
RBR
RBR
BRR
BBB
RBR
BBB
BRB
BBB
RRB
RRB
RBB
BRB
RRB
RRR
BBB
RRB

output:

L

result:

ok single line: 'L'

Test #39:

score: 0
Accepted
time: 21ms
memory: 4960kb

input:

25 3
BBB
BRB
BBB
RRR
RBR
BBB
RBR
BBR
BRB
RBR
RRR
RRR
RBB
BBB
RBR
RRR
RBB
BBB
BBR
RBB
BRR
RBB
RBB
RBR
BBB

output:

W

result:

ok single line: 'W'

Test #40:

score: -100
Time Limit Exceeded

input:

22 22
RBRGRBGRGGGBRRRBRBBBRG
RBGBRGBGRBBGRGGBRRBRRG
GGRBGGRRBBGRBBGBBGRGGG
GBBBGBBGGBBGGGGBGGGRRG
BBBRBGRBGRGRBGRBRGBBBG
RGRGGBRBBRRBBBBBBRRGRG
BBBGRRGRRRBBGGBRRGRGGR
GRGGGGGBBRGRRRRGBRRRRG
BRGBRBGBGGRGGRRGGGGBGB
GBRBGGRGRGRGGRBBGGGGRB
RBRGBGBBBGBBBGBGBGGBBB
RBBBBBBGBBRBRRBBRGBBGR
RGBBBGBRRGGRGBBRGG...

output:


result: