Cod sursa(job #2041203)

Utilizator maria15Maria Dinca maria15 Data 16 octombrie 2017 22:16:39
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>

using namespace std;

int i, j, v[27][27], s, sol, x, nr, f[10], c[2][26*26+1], ic, jc, cantitatea[27][27], clienti, u, p, iv, jv;
char ch1, ch2, ifin, jfin, n, m, ist, jst, d;
char di[] = {0, 0, -1, -1, -1, 1, 1, 1};
char dj[] = {1, -1, -1, 0, 1, -1, 0, 1};
int val[] = {200, 100, 50, 20, 10, 5, 2, 1};

ifstream fin("vending_machine_4.in");
ofstream fout("vending_machine_4.out");

int main(){
    fin>>n>>m;
    n = n - 'A' + 1;
    m = m - '1' + 1;

    fin>>ist>>jst>>ifin>>jfin;

    ist = ist - 'A' + 1;
    ifin = ifin - 'A' + 1;
    jst = jst - '1' + 1;
    jfin = jfin - '1' + 1;

    p = u = 1;
    c[0][1] = ist;
    c[1][1] = jst;
    v[ist][jst] = 1;

    while(p<=u){
        ic = c[0][p];
        jc = c[1][p];

        for(d=0;d<=7;d++){
            iv = ic + di[d];
            jv = jc + dj[d];

            if(iv>=1 && iv<=n && jv>=1 && jv<=m && v[iv][jv] == 0){
                u++;
                c[0][u] = iv;
                c[1][u] = jv;
                v[iv][jv] = v[ic][jc]+1;
                if(iv == ifin && jv == jfin){
                    fout<<v[iv][jv]-1;
                    return 0;
                }
            }
        }
        p++;
    }

    return 0;
}