97162024-03-02 17:27:39IgnácStefan sakkmesteri ambícióicpp17Futási hiba 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";
        }
    }
}



RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1812 KiB
subtask211/11
2Elfogadva3ms2004 KiB
3Elfogadva3ms2084 KiB
4Elfogadva3ms2220 KiB
5Elfogadva7ms2424 KiB
subtask312/12
6Elfogadva3ms2636 KiB
7Elfogadva3ms2840 KiB
8Elfogadva3ms3056 KiB
9Elfogadva7ms3268 KiB
subtask40/15
10Futási hiba3ms3468 KiB
11Futási hiba3ms3332 KiB
12Futási hiba3ms3320 KiB
13Futási hiba3ms3320 KiB
subtask50/16
14Időlimit túllépés1.069s3232 KiB
15Időlimit túllépés1.057s3444 KiB
16Időlimit túllépés1.057s3532 KiB
17Időlimit túllépés1.06s3428 KiB
subtask60/46
18Időlimit túllépés1.06s3564 KiB
19Időlimit túllépés1.065s3532 KiB
20Időlimit túllépés1.052s3656 KiB
21Időlimit túllépés1.06s3652 KiB
22Időlimit túllépés1.065s2972 KiB
23Futási hiba3ms3800 KiB
24Időlimit túllépés1.08s3684 KiB
25Futási hiba3ms3688 KiB
26Időlimit túllépés1.057s3544 KiB