#54150: 求救!!!!!


lingzhiqi9@gmail.com (jack)


#include<iostream>
#include<iomanip>
using namespace std;
int row[8]={};
bool cul[8]={};
bool m[16]={};
bool f[16]={};
void p(int* c){
    cout<<setw(2)<<right<<*c+1<<"      ";
    for(int i=0;i<8;i++){
        cout<<row[i]+1<<" ";
    }
    (*c)++;
    cout<<endl;
}
void solve(int n,int mm,int* c){
    if(n==8){
        p(c);
        return;
    }else if(n==mm){
        solve(n+1,mm,c);
        return;
    }else{
        for(int i=0;i<8;i++){
            if(cul[i]||m[n-i-1+8]||f[i+n]){
                continue;
            }
            row[n]=i;
            cul[i]=m[n-i+8-1]=f[i+n]=true;
            solve(n+1,mm,c);
            cul[i]=m[n-i+8-1]=f[i+n]=false;
        }
    }
    return;
}
int main(){
    int n;
    cin>>n;
    int ar,ac,c=0;
    while(cin>>ar>>ac){
        cout<<"SOLN       COLUMN"<<endl;
        cout<<" #      1 2 3 4 5 6 7 8"<<endl;
        row[ar-1]=ac-1;
        cul[ac-1]=true;
        m[ar-1-(ac-1)+8-1]=true;
        f[ar-1+(ac-1)]=true;
        solve(0,ar-1,&c);
        cout<<endl;
    }
}