(ファイルIO):入力:marathon.in出力:marathon.out
制限時間:1000msのスペースの制約:262144キロバイトの特定の制限
後藤ProblemSet
タイトル説明
地図上にあり
都市、牛から
順次経由ナンバー市
都市、そして最後に
都市の数。しかし、唯一の牛が、これはあまりにも退屈だと思うので、スキップ(ただし都市をスキップすることを決定しました
番号と
ようなそれから、その番号の変更)、
ナンバー市が到着し始めました
都市の最小数の合計距離が通ります。すべての都市は都市から、座標ました
都市へ
距離
。
入力した
最初の行の数を
、都市の数である
次の行に
それぞれの行二列
、各都市の座標を表します
出力
ラインaの数
からそのような、
ナンバー市は、特定の都市をスキップし始め、到着
都市の数が最小合計距離が通過
サンプル入力
4
0 0
。8 3
。11 -1
10 0
サンプル出力
14
データ範囲の制限
のために•
データの%、
。
•のために
データの%、
。
ヒント
スキップ
ハオ市
問題解決のためのアイデアを
直接暴力列挙。。。
コード
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,a[100010][3],n,minn,ans,t;
int main(){
freopen("marathon.in","r",stdin);
freopen("marathon.out","w",stdout);
scanf("%d",&n);
minn=2147483647;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i][1],a[i][2]);
t=t+abs(a[i-1][1]-a[i][1])+abs(a[i-1][2]-a[i][2]);
}
for(int i=1;i<=n;i++)
{
ans=s-(abs(a[i][1]-a[i-1][1])+abs(a[i][2]-a[i-1][2]))-(abs(a[i][1]-a[i+1][1])+abs(a[i][2]-a[i+1][2]))+(abs(a[i-1][1]-a[i+1][1])+abs(a[i-1][2]-a[i+1][2]));
if(ans<minn)
minn=ans;
}
printf("%d",minn);
}