#include<cstdio>
#include<iostream>
#include<math.h>
using namespace std;
int board[8][8]={0},min = 999999,visit[8][8]={0};
int r1, c1, r2, c2, r3, c3;
int swap(int *a,int *b)
{
int t = *a;*a = *b;*b = t;
}
int search( )
{
int count = 0,min = 0,max = 0,q = 0;
if(c1 >= c2)//向左上方
{
//printf("zou%d %d %d %d\n",r1,c1,r2,c2);
q = min = ( c1 - c2 > r2 - r1 ) ? r2 - r1 : c1 - c2;//沿对角线走的步数
max = ( c1 - c2 < r2 - r1 ) ? r2 - r1 : c1 - c2;//向左或向上
count += min;
while( min-- )
{
r1++,c1--;
if(r2 - r1 == c1 - c2 && (r1 == r3 && c1 == c3))//碰到障碍并且无法避免
count += 1;
}
// printf("%d %d\n",q,count);
count += max - q;//减去已经走的
}
else if(c1 < c2)//向右上方
{
//printf("you%d %d %d %d\n",r1,c1,r2,c2);
q = min = ( c2 - c1 > r2 - r1 ) ? r2-r1 : c2-c1;
max = ( c2 - c1 < r2 - r1 ) ? r2-r1 : c2-c1;//向左或向上
count += min;
while( min-- )
{
r1++,c1++;
if( r2 - r1 == c2 - c1 && r1 == r3 && c1 == c3)//碰到障碍并且无法避免
count += 1;
}
count += max - q;//减去已经走的
}
return count;
}
int main()
{
int k = 0;
while(cin>>r1>>c1>>r2>>c2>>r3>>c3){
int count = 0;
if(r1 == r2 || c1 == c2)//在同一行或列
{
if(r1==r2)//同一行
{
count += fabs(c1-c2);
}
else//同列
{
count += fabs(r1-r2);
}
cout <<"Case"<<" "<< ++k<< ":"<<" "<<count<<endl;
continue;
}
//不在同行或列
if(r1 > r2)//将下方点变为起始点
{
swap(&r1,&r2);
swap(&c1,&c2);
}
cout <<"Case"<<" "<< ++k<< ":"<<" "<<search()<<endl;}
}
#include<iostream>
#include<math.h>
using namespace std;
int board[8][8]={0},min = 999999,visit[8][8]={0};
int r1, c1, r2, c2, r3, c3;
int swap(int *a,int *b)
{
int t = *a;*a = *b;*b = t;
}
int search( )
{
int count = 0,min = 0,max = 0,q = 0;
if(c1 >= c2)//向左上方
{
//printf("zou%d %d %d %d\n",r1,c1,r2,c2);
q = min = ( c1 - c2 > r2 - r1 ) ? r2 - r1 : c1 - c2;//沿对角线走的步数
max = ( c1 - c2 < r2 - r1 ) ? r2 - r1 : c1 - c2;//向左或向上
count += min;
while( min-- )
{
r1++,c1--;
if(r2 - r1 == c1 - c2 && (r1 == r3 && c1 == c3))//碰到障碍并且无法避免
count += 1;
}
// printf("%d %d\n",q,count);
count += max - q;//减去已经走的
}
else if(c1 < c2)//向右上方
{
//printf("you%d %d %d %d\n",r1,c1,r2,c2);
q = min = ( c2 - c1 > r2 - r1 ) ? r2-r1 : c2-c1;
max = ( c2 - c1 < r2 - r1 ) ? r2-r1 : c2-c1;//向左或向上
count += min;
while( min-- )
{
r1++,c1++;
if( r2 - r1 == c2 - c1 && r1 == r3 && c1 == c3)//碰到障碍并且无法避免
count += 1;
}
count += max - q;//减去已经走的
}
return count;
}
int main()
{
int k = 0;
while(cin>>r1>>c1>>r2>>c2>>r3>>c3){
int count = 0;
if(r1 == r2 || c1 == c2)//在同一行或列
{
if(r1==r2)//同一行
{
count += fabs(c1-c2);
}
else//同列
{
count += fabs(r1-r2);
}
cout <<"Case"<<" "<< ++k<< ":"<<" "<<count<<endl;
continue;
}
//不在同行或列
if(r1 > r2)//将下方点变为起始点
{
swap(&r1,&r2);
swap(&c1,&c2);
}
cout <<"Case"<<" "<< ++k<< ":"<<" "<<search()<<endl;}
}