結果
問題 |
No.1147 土偶Ⅱ
|
ユーザー |
![]() |
提出日時 | 2020-08-19 11:32:48 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 500 ms |
コード長 | 843 bytes |
コンパイル時間 | 2,252 ms |
コンパイル使用メモリ | 196,984 KB |
最終ジャッジ日時 | 2025-01-13 03:43:15 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; using Graph = vector<vector<int>>; const ll mod = 1000000007; const int INF = 1001001001; int main(){ int n, m; cin >> n >> m; Graph G(n, vector<int>(n, INF)); for(int i = 0; i < m; i++){ int a, b; cin >> a >> b; --a; --b; G[a][b] = 1; G[b][a] = 1; } for(int k = 0; k < n; k++){ for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ G[i][j] = min(G[i][j], G[i][k] + G[k][j]); } } } int ans = n * (n-1) * (n-2) / 6; for(int i = 0; i < n; i++){ for(int j = i+1; j < n; j++){ for(int k = j+1; k < n; k++){ if(G[i][j] == 2 || G[j][k] == 2 || G[k][i] == 2) ans--; } } } cout << ans << endl; }