結果
| 問題 | No.707 書道 | 
| コンテスト | |
| ユーザー |  tempura_pp | 
| 提出日時 | 2018-06-29 22:35:39 | 
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 3 ms / 2,000 ms | 
| コード長 | 1,328 bytes | 
| コンパイル時間 | 985 ms | 
| コンパイル使用メモリ | 90,064 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-06-30 23:59:44 | 
| 合計ジャッジ時間 | 1,361 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 6 | 
ソースコード
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<iomanip>
#include<math.h>
#include<complex>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<bitset>
using namespace std;
#define REP(i,m,n) for(int i=(int)m ; i < (int) n ; i++ )
#define rep(i,n) REP(i,0,n)
typedef long long ll;
typedef pair<int,int> pint;
const int inf=1e9+7;
const ll longinf=1LL<<60 ;
const ll mod=998244353 ;
int dx[4]={1,0,-1,0} , dy[4]={0,1,0,-1} ;
int main(){
    int h,w;
    cin>>h>>w;
    string s[h];
    rep(i,h)cin>>s[i];
    double ans=100000;
    rep(i,h+2){
        double ret=0;
        rep(j,h)rep(k,w){
            if(s[j][k]=='1')ret+=sqrt((k+1)*(k+1)+(j-i+1)*(j-i+1));
        }
        ans=min(ans,ret);
    }
    rep(i,h+2){
        double ret=0;
        rep(j,h)rep(k,w){
            if(s[j][k]=='1')ret+=sqrt((w-k)*(w-k)+(j-i+1)*(j-i+1));
        }
        ans=min(ans,ret);
    }
    rep(i,w+2){
        double ret=0;
        rep(j,h)rep(k,w){
            if(s[j][k]=='1')ret+=sqrt((k-i+1)*(k-i+1)+(j+1)*(j+1));
        }
        ans=min(ans,ret);
    }
    rep(i,w+2){
        double ret=0;
        rep(j,h)rep(k,w){
            if(s[j][k]=='1')ret+=sqrt((k-i+1)*(k-i+1)+(h-j)*(h-j));
        }
        ans=min(ans,ret);
    }
cout<<fixed<<setprecision(10)<<ans<<endl;
return 0;
}
            
            
            
        