#include <iostream>
#include <vector>
#include <string>
#include <set>
using namespace std;
vector<vector<char> > a(4,vector<char>(4));
string s;
int idx;
vector<vector<int> > vis;
vector<vector<int> > dir={{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,-1},{-1,1},{1,-1}};
int dfs(int idx,int i,int j){
if(idx==s.size())
return 1;
if(i<0||i>3||j<0||j>3||vis[i][j]||s[idx]!=a[i][j])
return 0;
vis[i][j]=1;
for(int k=0;k<8;k++){
if(dfs(idx+1,i+dir[k][0],j+dir[k][1]))
return 1;
}
vis[i][j]=0;
return 0;
}
int pts(){
switch(s.size()){
case 3:return 1;
case 4:return 1;
case 5:return 2;
case 6:return 3;
case 7:return 5;
default:return 11;
}
}
int main(){
int t,cs=1;
for(cin>>t;t--;){
for(int i=0;i<4;i++){
ws(cin);
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int n;
set<string> st;
for(cin>>n;n--;){
string s;
ws(cin);
cin>>s;
st.insert(s);
}
int ans=0;
for(string t:st){
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
vis.assign(4,vector<int>(4));
s=t;
if(dfs(0,i,j))
ans+=pts(),i=4,j=4;
}
}
}
cout<<"Score for Boggle game #"<<cs++<<": "<<ans<<endl;
}
}
#include <vector>
#include <string>
#include <set>
using namespace std;
vector<vector<char> > a(4,vector<char>(4));
string s;
int idx;
vector<vector<int> > vis;
vector<vector<int> > dir={{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,-1},{-1,1},{1,-1}};
int dfs(int idx,int i,int j){
if(idx==s.size())
return 1;
if(i<0||i>3||j<0||j>3||vis[i][j]||s[idx]!=a[i][j])
return 0;
vis[i][j]=1;
for(int k=0;k<8;k++){
if(dfs(idx+1,i+dir[k][0],j+dir[k][1]))
return 1;
}
vis[i][j]=0;
return 0;
}
int pts(){
switch(s.size()){
case 3:return 1;
case 4:return 1;
case 5:return 2;
case 6:return 3;
case 7:return 5;
default:return 11;
}
}
int main(){
int t,cs=1;
for(cin>>t;t--;){
for(int i=0;i<4;i++){
ws(cin);
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int n;
set<string> st;
for(cin>>n;n--;){
string s;
ws(cin);
cin>>s;
st.insert(s);
}
int ans=0;
for(string t:st){
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
vis.assign(4,vector<int>(4));
s=t;
if(dfs(0,i,j))
ans+=pts(),i=4,j=4;
}
}
}
cout<<"Score for Boggle game #"<<cs++<<": "<<ans<<endl;
}
}
Comments
Post a Comment