Cod sursa(job #1804056)

Utilizator Aquaryus0Alexandru Benchea Aquaryus0 Data 12 noiembrie 2016 10:28:15
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#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();
}