結果
問題 | No.707 書道 |
ユーザー | RTIA1227 |
提出日時 | 2018-06-29 22:42:05 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 2,055 bytes |
コンパイル時間 | 619 ms |
コンパイル使用メモリ | 87,712 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 00:03:04 |
合計ジャッジ時間 | 1,072 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 6 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> #include<functional> #include<queue> #include<stack> #include<set> #include<climits> #include<cstdlib> #include<cmath> #include<string> #include<iomanip> using namespace std; #define INF 1 << 29 #define LL long long int LL const MOD = 1000000007; int main(){ cin.tie(0); ios::sync_with_stdio(false); LL h,w; cin >> h >> w; vector<string> str(h); for(int i = 0; i < h; i++){ cin >> str[i]; } double ans = INF; for(int i = 1; i < w+1; i++){ double tmp = 0.0; for(int j = 0; j < h; j++){ for(int k = 0; k < w; k++){ if(str[j][k] == '1'){ tmp += sqrt((double)((j+1)*(j+1)+(i-(k+1))*(i-(k+1)))); } } } if(tmp < ans){ ans = tmp; } } for(int i = 1; i < w+1; i++){ double tmp = 0.0; for(int j = 0; j < h; j++){ for(int k = 0; k < w; k++){ if(str[j][k] == '1'){ tmp += sqrt((double)(((j+1)-(h+1))*((j+1)-(h+1))+(i-(k+1))*(i-(k+1)))); } } } if(tmp < ans){ ans = tmp; } } for(int i = 1; i < h+1; i++){ double tmp = 0.0; for(int j = 0; j < h; j++){ for(int k = 0; k < w; k++){ if(str[j][k] == '1'){ tmp += sqrt((double)(((j+1)-i)*((j+1)-i)+((k+1))*((k+1)))); } } } if(tmp < ans){ ans = tmp; } } for(int i = 1; i < h+1; i++){ double tmp = 0.0; for(int j = 0; j < h; j++){ for(int k = 0; k < w; k++){ if(str[j][k] == '1'){ tmp += sqrt((double)(((j+1)-i)*((j+1)-i)+((w+1)-(k+1))*((w+1)-(k+1)))); } } } if(tmp < ans){ ans = tmp; } } cout << fixed; cout << setprecision(17) << ans << endl; return 0; }