1. 程式人生 > 實用技巧 >Codeforces Round #687 A. Prison Break

Codeforces Round #687 A. Prison Break

地址:http://codeforces.com/contest/1457/problem/A

題意:

有一個n*m的監獄,每一個格子有一個犯人,座標為( r , c )的格子有一條逃生通道,犯人每一秒可以向相鄰的一個格子移動,問所有犯人到達逃生通道最久需要多少秒。

解析:

離r,c的最遠點,一定在矩陣的四個角之中,所以對四個角取個最大值即可。

#include<iostream>
#include<cstring>
#include<map>
#include<stack>
#include<queue>
#include<cstdio>
#include
<cmath> #include<string.h> using namespace std; typedef long long ll; const int inf=99999999; int main() { int t; cin>>t; while(t--) { ll n,m,r,c; cin>>n>>m>>r>>c; ll md1=(r-1)+(c-1); ll md2=fabs(n-r)+fabs(c-1); ll md3
=fabs(1-r)+fabs(m-c); ll md4=fabs(n-r)+fabs(m-c); cout<<max(max(md1,md2),max(md3,md4))<<endl; } return 0; }