using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
            // 入力
            string[] sS = Console.ReadLine().Trim().Split(' ');
            int iN = int.Parse(sS[0]);
            sS = Console.ReadLine().Trim().Split(' ');
            List<int> lstA = new List<int>();                                                       // 各Aの位置
            lstA.Add(0);                                                                            // 出発点
            for (int i = 0; i < sS.Length; i++) { lstA.Add(int.Parse(sS[i])); }                     // 各Aの位置
            lstA.Add(0);                                                                            // 到着点
            iN = lstA.Count;                                                                        // 結局のAの数
            //// debug入力
            //int iN = 100000;
            //List<int> lstA = new List<int>();                                                       // 各Aの位置
            //lstA.Add(0);                                                                            // 出発点
            //for (int i = 0; i < iN; i++) { lstA.Add(5000 * (i % 2 == 0 ? 1: -1)); }                 // 各Aの位置
            //lstA.Add(0);                                                                            // 到着点
            //iN = lstA.Count;                                                                        // 結局のAの数

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();

            // 解析
            long AllCst = 0;                                                                        // 全行程の場合の値
            for (int i = 0; i < iN - 1; i++) { AllCst += Math.Abs(lstA[i] - lstA[i + 1]); }         // 全行程の場合の値
            List<long> lstC = new List<long>();                                                     // iを抜かした場合の値
            long lBuf = 0;                                                                          // 計算用Baffer
            for (int i = 1; i < iN - 1; i++)                                                        // iを抜かした場合の値(出発点と到着点は抜く)
            {
                lBuf = AllCst;                                                                      // 全行程の場合の値から
                lBuf -= Math.Abs(lstA[i] - lstA[i - 1]);                                            // iの前からiまでの行程を減算
                lBuf -= Math.Abs(lstA[i] - lstA[i + 1]);                                            // iの後からiまでの行程を減算
                lBuf += Math.Abs(lstA[i - 1] - lstA[i + 1]);                                        // iの前からiの後までの行程を加算
                lstC.Add(lBuf);                                                                     // iを抜かした場合の値(出発点と到着点は抜く)
            }

            // 出力
            for (int i = 0; i < lstC.Count; i++)
            {
                Console.WriteLine("{0}", lstC[i].ToString().Trim());
#if DEBUG
                if (i > 10) { break; }
#endif
            }

            sw.Stop();
#if DEBUG
            Console.WriteLine();
            Console.WriteLine("{0}", sw.Elapsed.ToString());
            Console.WriteLine("続行するには何かキーを押してください．．．");
            Console.ReadKey();
#endif
    }
}


Measured memory_bytes: 29524