結果
問題 | No.2604 Initial Motion |
ユーザー |
|
提出日時 | 2024-01-12 23:42:44 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 851 bytes |
コンパイル時間 | 4,745 ms |
コンパイル使用メモリ | 271,000 KB |
最終ジャッジ日時 | 2025-02-18 19:17:07 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 TLE * 1 -- * 28 |
ソースコード
#include <bits/stdc++.h>#include <atcoder/all>using namespace std;using ll = long long;#define rep(i,n) for(int i=0;i<(int)(n);i++)using mint = atcoder::modint998244353;int main(){int k,n,m;cin>>k>>n>>m;vector<int> a(k),b(n);rep(i,k) cin>>a.at(i);rep(i,n) cin>>b.at(i);rep(i,k) a.at(i)--;vector<vector<ll>> g(n,vector<ll>(n,1e18));rep(lp,m){int u,v;ll d;cin>>u>>v>>d;u--; v--;g.at(u).at(v)=d;g.at(v).at(u)=d;}rep(i,n) g.at(i).at(i)=0;rep(i,n) rep(j,n) rep(k,n){if(g.at(j).at(k)>g.at(j).at(i)+g.at(i).at(k)){g.at(j).at(k)=g.at(j).at(i)+g.at(i).at(k);}}atcoder::mcf_graph<ll,ll> mcf(k+n+2);rep(i,k) rep(j,n){mcf.add_edge(i,k+j,1,g.at(a.at(i)).at(j));}rep(i,k) mcf.add_edge(k+n,i,1,0);rep(i,n) mcf.add_edge(k+i,k+n+1,b.at(i),0);auto[mx,cs]=mcf.flow(k+n,k+n+1);cout<<cs<<endl;}