Cod sursa(job #1010537)

Utilizator mihai.plesaPlesa Mihail Iulian mihai.plesa Data 15 octombrie 2013 07:06:16
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<fstream>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
    fstream f,g;
    f.open("papuci.in",ios::in);
    g.open("papuci.out",ios::out);
    int n,k,i,j,var1,var2,A[27][27],suma=0,nr,a,b,c,d,max;
    char s[100001];
    f>>n>>k;
    for(i=0; i<n; i++)
        f>>s[i];
    for(i=1; i<=26; i++)
        for(j=1; j<=26; j++)
        f>>A[i][j];

    for(i=0; i<n; i++)
        suma=suma+A[(int)s[i]-96][(int)s[i+1]-96];
        max=suma;

    for(i=1; i<=k; i++)
    {
        f>>var1>>var2;
        var1--;
        var2--;

        a=(int)s[var1]-96;
        b=(int)s[var2]-96;

        if(var1==0)
            c=0;
        else
            c=(int)s[var1-1]-96;


        if(var2==n-1)
            d=0;
        else
            d=(int)s[var2+1]-96;


        if(a!=b)
        {
            suma=suma-A[c][a]-A[a][b]-A[b][d]+A[c][b]+A[b][a]+A[a][d];
            if(suma>max)
                max=suma;


        }

    }
    g<<max;

}