結果
| 問題 | No.3616 WK vs AT vs MT vs SP |
| コンテスト | |
| ユーザー |
tau1235
|
| 提出日時 | 2026-08-06 15:17:06 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 540 ms / 2,000 ms |
| + 139µs | |
| コード長 | 1,707 bytes |
| 記録 | |
| コンパイル時間 | 2,200 ms |
| コンパイル使用メモリ | 349,396 KB |
| 実行使用メモリ | 86,340 KB |
| 最終ジャッジ日時 | 2026-08-06 15:17:20 |
| 合計ジャッジ時間 | 12,377 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| サンプル | 0 % | AC * 1 |
| 小課題1 | 8 % | AC * 9 |
| 小課題2 | 16 % | AC * 5 |
| 小課題3 | 20 % | AC * 10 |
| 小課題4 | 20 % | AC * 15 |
| 小課題5 | 20 % | AC * 15 |
| 小課題6 | 16 % | AC * 36 |
| 合計 | 2.5 * 100% = 250 点 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
void solve(){
using ll=long long;
ll inf=1e18;
ll n,r,c;
cin>>n>>r>>c;
vector<vector<pair<int,ll>>> g((n+1)*8);
for (int i=0;i<n;i++){
int x;
cin>>x;
for (int j=0;j<8;j++){
if (j&1) ;
else g[i+j*(n+1)].push_back({i+(j+1)*(n+1),x});
}
}
for (int i=0;i<n;i++){
int y;
cin>>y;
for (int j=0;j<8;j++){
g[i+j*(n+1)].push_back({i+(j|3)*(n+1),y});
}
}
for (int i=0;i<n;i++){
int z;
cin>>z;
for (int j=0;j<8;j++){
if (j&4) ;
else g[i+j*(n+1)].push_back({i+(j+4)*(n+1),z});
}
}
for (int v=0;v<n;v++){
ll s;
cin>>s;
for (int j=0;j<8;j++){
if (j&4){
g[v+j*(n+1)].push_back({n+j*(n+1),s});
g[n+j*(n+1)].push_back({v+j*(n+1),s+c});
}
}
}
for (int i=0;i<r;i++){
int u,v,w,a,m;
cin>>u>>v>>w>>a>>m;
u--;v--;
for (int j=0;j<8;j++){
if (1){
g[u+j*(n+1)].push_back({v+j*(n+1),w});
g[v+j*(n+1)].push_back({u+j*(n+1),w});
}
if (j&1){
g[u+j*(n+1)].push_back({v+j*(n+1),a});
g[v+j*(n+1)].push_back({u+j*(n+1),a});
}
if (j&2){
g[u+j*(n+1)].push_back({v+j*(n+1),m});
g[v+j*(n+1)].push_back({u+j*(n+1),m});
}
}
}
priority_queue<pair<ll,int>> q;
q.push({0,0});
vector<ll> dist((n+1)*8,inf);
while (!q.empty()){
auto [d,v]=q.top();
q.pop();
if (dist[v]!=inf) continue;
d*=-1;
dist[v]=d;
for (auto [u,nd]:g[v]){
q.push({-(d+nd),u});
}
}
ll ans=inf;
for (int i=0;i<8;i++) ans=min(ans,dist[(n-1)+i*(n+1)]);
cout<<ans<<endl;
}
int main(){
int t=1;
//cin>>t;
while (t--) solve();
}
tau1235