神题啊啊啊啊啊啊啊啊啊
看图建最短路
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;
#include <queue>
#include <stack>
#include <set>
#include <vector>
#include <deque>
#include <map>
#define cler(arr, val) memset(arr, val, sizeof(arr))
typedef long long LL;
const int MAXN = 120000;
const int MAXM = 140000;
const int INF = 0x3f3f3f3f;
const int mod = 1000000007;
#define lson l,m,rt<<1
#define rson m+1n 0;,r,rt<<1|1
char s[71][40]=
{
"7_klyuchey",
"Sortirovochnaya",
"China_town",
"Zarechny",
"Zelyony_ostrov",
"Tatishchevskaya",
"Verh_Isetskaya",
"Kommunarov_square",
"City",
"Zvezda",
"I_Pyatiletki_square",
"Pobedy",
"Bakinskih_Komissarov",
"Prospekt_Kosmonavtov",
"Uralmash",
"Mashinostroiteley",
"Taganskaya",
"Elmash",
"Turbinnaya",
"Kalinovskaya",
"Italyanskaya",
"Ozyornaya",
"Shefskaya",
"Komsomolskaya",
"Vilonovskaya",
"Pionerskaya",
"Uralskaya",
"Dinamo",
"Shevchenko",
"Gagarinskaya",
"Moskovskaya",
"Vostochnaya",
"Vtuzgorodok",
"Kamennye_palatki",
"University",
"1905_year_square",
"Teatralnaya",
"Kuybyshevskaya",
"Geologicheskaya",
"Posadskaya",
"Central_stadium",
"Kraulya",
"Metallurgov",
"MEGA",
"Volgogradskaya",
"Yugo_zapadnaya",
"Akademicheskaya",
"Aviatsionnaya",
"Dvorets_sporta",
"Voennaya",
"Sovhoznaya",
"Bazhovskaya",
"Chkalovskaya",
"Botanicheskaya",
"Samolyotnaya",
"Vtorchermet",
"Keramicheskaya",
"Himmash",
"Nizhne_Isetskaya",
"Uktusskie_Gory",
"Shcherbakovskaya",
"Parkovaya",
"Mayakovskaya",
"Oborony_square",
"Sibirskaya",
"Siniye_kamni",
"Lechebnaya",
"Varshavskaya",
"Kompressornaya",
"Koltsovo"
};
int mp[88][88];
void init()
{
for(int i=0; i<=70; i++)
{
for(int j=0; j<=70; j++)
mp[i][j]=INF;
mp[i][i]=0;
}
mp[1][2]=mp[2][1]=1;
mp[3][2]=mp[2][3]=1;
mp[3][4]=mp[4][3]=1;
mp[9][4]=mp[4][9]=1;
mp[5][6]=mp[6][5]=1;
mp[7][6]=mp[6][7]=1;
mp[7][8]=mp[8][7]=1;
mp[9][8]=mp[8][9]=1;
mp[9][27]=mp[27][9]=1;
mp[8][31]=mp[31][8]=1;
mp[8][36]=mp[36][8]=1;
mp[12][11]=mp[11][12]=1;
mp[10][11]=mp[11][10]=1;
mp[10][27]=mp[27][10]=1;
mp[28][27]=mp[27][28]=1;
mp[26][27]=mp[27][26]=1;
mp[29][27]=mp[27][29]=1;
mp[26][29]=mp[29][26]=1;
mp[26][19]=mp[19][26]=1;
mp[18][19]=mp[19][18]=1;
mp[18][17]=mp[17][18]=1;
mp[13][14]=mp[14][13]=1;
mp[15][14]=mp[14][15]=1;
mp[15][16]=mp[16][15]=1;
mp[16][27]=mp[27][16]=1;
mp[26][30]=mp[30][26]=1;
mp[25][30]=mp[30][25]=1;
mp[24][30]=mp[30][24]=1;
mp[24][23]=mp[23][24]=1;
mp[22][23]=mp[23][22]=1;
mp[22][21]=mp[21][22]=1;
mp[21][20]=mp[20][21]=1;
mp[28][36]=mp[36][28]=1;
mp[29][36]=mp[36][29]=1;
mp[37][36]=mp[36][37]=1;
mp[31][36]=mp[36][31]=1;
mp[31][41]=mp[41][31]=1;
mp[42][41]=mp[41][42]=1;
mp[42][43]=mp[43][42]=1;
mp[44][43]=mp[43][44]=1;
mp[31][40]=mp[40][31]=1;
mp[45][40]=mp[40][45]=1;
mp[45][46]=mp[46][45]=1;
mp[47][46]=mp[46][47]=1;
mp[49][40]=mp[40][49]=1;
mp[49][39]=mp[39][49]=1;
mp[36][39]=mp[39][36]=1;
mp[36][38]=mp[38][36]=1;
mp[37][39]=mp[39][37]=1;
mp[38][39]=mp[39][38]=1;
mp[37][39]=mp[39][37]=1;
mp[37][29]=mp[29][37]=1;
mp[37][32]=mp[32][37]=1;
mp[33][32]=mp[32][33]=1;
mp[33][34]=mp[34][33]=1;
mp[35][34]=mp[34][35]=1;
mp[33][65]=mp[65][33]=1;
mp[38][64]=mp[64][38]=1;
mp[38][65]=mp[65][38]=1;
mp[66][65]=mp[65][66]=1;
mp[66][67]=mp[67][66]=1;
mp[68][67]=mp[67][68]=1;
mp[68][69]=mp[69][68]=1;
mp[70][69]=mp[69][70]=1;
mp[65][64]=mp[64][65]=1;
mp[39][52]=mp[52][39]=1;
mp[49][52]=mp[52][49]=1;
mp[49][48]=mp[48][49]=1;
mp[50][48]=mp[48][50]=1;
mp[50][51]=mp[51][50]=1;
mp[52][53]=mp[53][52]=1;
mp[52][64]=mp[64][52]=1;
mp[54][53]=mp[53][54]=1;
mp[54][55]=mp[55][54]=1;
mp[56][55]=mp[55][56]=1;
mp[56][57]=mp[57][56]=1;
mp[54][61]=mp[61][54]=1;
mp[54][62]=mp[62][54]=1;
mp[60][61]=mp[61][60]=1;
mp[63][62]=mp[62][63]=1;
mp[63][64]=mp[64][63]=1;
mp[60][59]=mp[59][60]=1;
mp[58][59]=mp[59][58]=1;
mp[38][32]=mp[32][38]=1;
mp[32][30]=mp[30][32]=1;
mp[40][39]=mp[39][40]=1;
mp[9][36]=mp[36][9]=1;
mp[52][64]=mp[64][52]=1;
mp[37][38]=mp[38][37]=1;
mp[37][30]=mp[30][37]=1;
mp[33][30]=mp[30][33]=1;
for(int k=1; k<=70; k++)
for(int i=1; i<=70; i++)
for(int j=1; j<=70; j++)
mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
}
int main()
{
init();
int n;
cin>>n;
while(n--)
{
int n1,n2;
string s1,s2;
cin>>s1>>s2;
for(int i=0; i<70; i++)
{
if(s1==s[i])
n1=i;
if(s2==s[i])
n2=i;
}
n1++;
n2++;
cout<<mp[n1][n2]<<endl;
}
return 0;
}