Pagini recente » Cod sursa (job #2027680) | Cod sursa (job #808533) | Cod sursa (job #1090091) | Cod sursa (job #2696714) | Cod sursa (job #1804056)
#include <iostream>
#include <cstdio>
using namespace std;
int n;
int cuv[501];
int c[501][501];
int mat[501][501];
string s;
void read()
{
scanf("%d", &n);
cin>>s;
for(int i=0; i<n; i++)
cuv[i] = int(s[i]-'a');
for(int i=0; i<26; i++)
for(int j=0; j<26; j++)
cin>>c[i][j];
}
void afisare()
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
cout<<mat[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
void sol()
{
int minim = 10001;
for(int i=0; i<n-2; i++)
{
int s = 0;
for(int x=i, y=i+1, nr=0; nr<n/2; nr++)
{
s += c[cuv[x]][cuv[y]];
if(x==0)
{
x += 2;
y += 2;
}
else if(y==0)
{
x -= 2;
y -= 2;
}
else
{
x -=1;
y +=1;
}
}
if(minim > s)
minim = s;
}
cout<<minim;
}
int main()
{
freopen("redu.in", "r", stdin);
freopen("redu.out", "w", stdout);
read();
sol();
}