#include #include #include #include #include #include #include using namespace std; #define int long long #define endl "\n" const long long INF = (long long)1e18; const long long MOD = (long long)1e9 + 7; string yn(bool f){return f?"Yes":"No";} string YN(bool f){return f?"YES":"NO";} #define MAX_VAL 100 #define to first #define cost second typedef long long ll; typedef pair P; // struct edge{ll to, cost;}; vector> G[MAX_VAL]; ll d[MAX_VAL], V; void dijkstra(ll s){ priority_queue,greater

> q; fill(d,d+V, INF); d[s] = 0; q.push(P(0,s)); while(!q.empty()){ P p = q.top();q.pop(); ll v = p.second; if(d[v] < p.first) continue; for(pair e : G[v]){ if(d[e.to] > d[v] + e.cost){ d[e.to] = d[v] + e.cost; q.push(P(d[e.to],e.to)); } } } } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cout<>x>>y>>z; cin>>s0>>t0>>s1>>t1; x *= 2, y *= 2, z *= 2; if(s0 == 'A'){ if(s1 == 'A'){ G[2].push_back(make_pair(3,y)); G[3].push_back(make_pair(2,y)); G[2].push_back(make_pair(3,z)); G[3].push_back(make_pair(2,z)); if(t0 < t1){ G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(1,(t1-t0)*2)); G[1].push_back(make_pair(0,(t1-t0)*2)); G[1].push_back(make_pair(3,(x/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(x/2-t1)*2 + 1)); } else { G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(0,(t0-t1)*2)); G[0].push_back(make_pair(1,(t0-t1)*2)); G[0].push_back(make_pair(3,(x/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(x/2-t0)*2 + 1)); } } else if(s1 == 'B'){ G[2].push_back(make_pair(3,z)); G[3].push_back(make_pair(2,z)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(x/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(x/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(y/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(y/2-t1)*2 + 1)); } else { G[2].push_back(make_pair(3,y)); G[3].push_back(make_pair(2,y)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(x/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(x/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(z/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(z/2-t1)*2 + 1)); } } else if(s0 == 'B'){ if(s1 == 'A'){ G[2].push_back(make_pair(3,z)); G[3].push_back(make_pair(2,z)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(y/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(y/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(x/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(x/2-t1)*2 + 1)); } else if(s1 == 'B'){ G[2].push_back(make_pair(3,x)); G[3].push_back(make_pair(2,x)); G[2].push_back(make_pair(3,z)); G[3].push_back(make_pair(2,z)); if(t0 < t1){ G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(1,(t1-t0)*2)); G[1].push_back(make_pair(0,(t1-t0)*2)); G[1].push_back(make_pair(3,(y/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(y/2-t1)*2 + 1)); } else { G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(0,(t0-t1)*2)); G[0].push_back(make_pair(1,(t0-t1)*2)); G[0].push_back(make_pair(3,(y/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(y/2-t0)*2 + 1)); } } else { G[2].push_back(make_pair(3,x)); G[3].push_back(make_pair(2,x)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(y/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(y/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(z/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(z/2-t1)*2 + 1)); } } else { if(s1 == 'A'){ G[2].push_back(make_pair(3,y)); G[3].push_back(make_pair(2,y)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(z/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(z/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(x/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(x/2-t1)*2 + 1)); } else if(s1 == 'B'){ G[2].push_back(make_pair(3,x)); G[3].push_back(make_pair(2,x)); G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(3,(z/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(z/2-t0)*2 + 1)); G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(3,(y/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(y/2-t1)*2 + 1)); } else { G[2].push_back(make_pair(3,x)); G[3].push_back(make_pair(2,x)); G[2].push_back(make_pair(3,y)); G[3].push_back(make_pair(2,y)); if(t0 < t1){ G[2].push_back(make_pair(0,(t0-1)*2 + 1)); G[0].push_back(make_pair(2,(t0-1)*2 + 1)); G[0].push_back(make_pair(1,(t1-t0)*2)); G[1].push_back(make_pair(0,(t1-t0)*2)); G[1].push_back(make_pair(3,(z/2-t1)*2 + 1)); G[3].push_back(make_pair(1,(z/2-t1)*2 + 1)); } else { G[2].push_back(make_pair(1,(t1-1)*2 + 1)); G[1].push_back(make_pair(2,(t1-1)*2 + 1)); G[1].push_back(make_pair(0,(t0-t1)*2)); G[0].push_back(make_pair(1,(t0-t1)*2)); G[0].push_back(make_pair(3,(z/2-t0)*2 + 1)); G[3].push_back(make_pair(0,(z/2-t0)*2 + 1)); } } } dijkstra(0); cout<