結果
問題 | No.707 書道 |
ユーザー |
![]() |
提出日時 | 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;}