97162024-03-02 17:27:39IgnácStefan sakkmesteri ambícióicpp17Runtime error 23/1001.08s3800 KiB

// Source: https://usaco.guide/general/io

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

int main() {
    int t;
    cin>>t;
    vector<string> a(8);
    for(int fghjk=0;fghjk<t;fghjk++){

        for(int i=0;i<8;i++){
            cin>>a[i];
        }
        bool b=false;
        int bish, k;
        for(int i=0;i<8;i++){
            for(int j=0;j<8;j++){
                k=i;
                bish=j;
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(a[i][j]=='N'){
                    if(i-2>=0 && j-1>=0){
                        if(a[i-2][j-1]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i-2>=0 && j+1<=7){
                        if(a[i-2][j+1]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i+2<=7 && j-1>=0){
                        if(a[i+2][j-1]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i+2<=7 && j+1<=7){
                        if(a[i+2][j+1]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i-1>=0 && j-2>=0){
                        if(a[i-1][j-2]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i-1>=0 && j+2<=7){
                        if(a[i-1][j+2]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i+1<=7 && j-2>=0){
                        if(a[i+1][j-2]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i+1<=7 && j+2<=7){
                        if(a[i+1][j+2]=='q'){
                            b=true;
                            break;
                        }
                    }
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(a[i][j]=='B'){
                    k=i;
                    bish=j;
                    while(k>=0 && bish>=0){
                        k--;
                        bish--;
                        if(bish<0 || k<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    if(b){
                        break;
                    }
                    k=i;
                    bish=j;
                    while(k<=7 && bish>=0){
                        k++;
                        bish--;
                        if(bish<0 || k>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k>=0 && bish<=7){
                        k--;
                        bish++;
                        if(bish>7 || k<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                    //      cout<<"I am right here\n";
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                    //  cout<<k<<' '<<bish<<'\n';
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k<=7 && bish<=7){
                        k++;
                        bish++;
                        if(bish>7 || k>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(a[i][j]=='R'){
                    j=i;
                    bish=j;
                    while(k>=0){
                        k--;
                        if(k<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k<=7){
                        k++;
                        if(k>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(bish<=7){
                        bish++;
                        if(bish>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(bish>=0){
                        bish--;
                        if(bish<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                }














                if(a[i][j]=='P'){
                    if(i-1>=0 && j-1>=0){
                        if(a[i-1][j-1]=='q'){
                            b=true;
                            break;
                        }
                    }
                    if(i-1>=0 && j+1<=7){
                        if(a[i-1][j+1]=='q'){
                            b=true;
                            break;
                        }
                    }
                }

















                if(a[i][j]=='Q'){
                    k=i;
                    bish=j;
                    while(k>=0){
                        k--;
                        if(k<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k<=7){
                        k++;
                        if(k>8){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(bish<=7){
                        bish++;
                        if(bish>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(bish>=0){
                        bish--;
                        if(bish<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    k=i, bish=j;
                    while(k>=0 && bish>=0){
                        k--;
                        bish--;
                        if(k<0 || bish<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    if(b){
                        break;
                    }
                    k=i;
                    bish=j;
                    while(k<=7 && bish>=0){
                        k++;
                        bish--;
                        if(k>7 || bish<0){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k>=0 && bish<=7){
                        k--;
                        bish++;
                        if(k<0 || bish>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                    while(k<=7 && bish<=7){
                        k++;
                        bish++;
                        if(k>7 || bish>7){
                            break;
                        }
                        if(a[k][bish]=='q'){
                            b=true;
                            break;
                        }
                        if(a[k][bish]!='.'){
                            break;
                        }
                        
                    }
                    k=i;
                    bish=j;
                    if(b){
                        break;
                    }
                }
            }
            if(b){
                break;
            }
        }
        if(!b){
            cout<<"NO\n";
        }else{
            cout<<"YES\n";
        }
    }
}



SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1812 KiB
subtask211/11
2Accepted3ms2004 KiB
3Accepted3ms2084 KiB
4Accepted3ms2220 KiB
5Accepted7ms2424 KiB
subtask312/12
6Accepted3ms2636 KiB
7Accepted3ms2840 KiB
8Accepted3ms3056 KiB
9Accepted7ms3268 KiB
subtask40/15
10Runtime error3ms3468 KiB
11Runtime error3ms3332 KiB
12Runtime error3ms3320 KiB
13Runtime error3ms3320 KiB
subtask50/16
14Time limit exceeded1.069s3232 KiB
15Time limit exceeded1.057s3444 KiB
16Time limit exceeded1.057s3532 KiB
17Time limit exceeded1.06s3428 KiB
subtask60/46
18Time limit exceeded1.06s3564 KiB
19Time limit exceeded1.065s3532 KiB
20Time limit exceeded1.052s3656 KiB
21Time limit exceeded1.06s3652 KiB
22Time limit exceeded1.065s2972 KiB
23Runtime error3ms3800 KiB
24Time limit exceeded1.08s3684 KiB
25Runtime error3ms3688 KiB
26Time limit exceeded1.057s3544 KiB