結果
| 問題 | No.3488 距離の公理 |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2026-03-20 10:41:56 |
| 言語 | C++17(gcc12) (gcc 12.4.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 895 bytes |
| 記録 | |
| コンパイル時間 | 348 ms |
| コンパイル使用メモリ | 69,372 KB |
| 実行使用メモリ | 7,972 KB |
| 最終ジャッジ日時 | 2026-04-03 20:52:45 |
| 合計ジャッジ時間 | 1,036 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 WA * 5 |
ソースコード
// 条件3チェック忘れ
#include <iostream>
using namespace std;
int main()
{
int N; cin >> N;
constexpr const int bound = 10;
int D[bound][bound];
for( int i = 0 ; i < N ; i++ ){
for( int j = 0 ; j < N ; j++ ){
cin >> D[i][j];
}
}
bool ultrametric = true;
for( int i = 0 ; i < N ; i++ ){
for( int j = 0 ; j < N ; j++ ){
if( ( D[i][j] == 0 ) != ( i == j ) ){
cout << "No\nNo\n";
return 0;
}
if( D[i][j] != D[j][i] ){
cout << "No\nNo\n";
return 0;
}
for( int k = 0 ; k < N ; k++ ){
if( ultrametric ){
if( D[i][k] > max( D[i][j] , D[j][k] ) ){
ultrametric = false;
}
}
// if( ! ultrametric ){
// if( D[i][k] > D[i][j] + D[j][k] ){
// cout << "No\nNo\n";
// return 0;
// }
// }
}
}
}
cout << "Yes\n" << ( ultrametric ? "Yes\n" : "No\n" );
return 0;
}