# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
647585 | 2022-10-03T08:56:36 Z | ToroTN | Cities (BOI16_cities) | C++14 | 3109 ms | 84668 KB |
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define X first #define Y second ll n,num,m,city[5],u_i,v_i,w_i,u,pow_2[5],val,dp[100005]; ll d[32][100005],some[32]; vector<pair<ll,ll> > g[100005]; vector<ll> bit[6]; priority_queue<pair<ll,ll> > pq; void dij(ll arr[]) { for(int i=1;i<=n;i++)pq.push({-arr[i],i}); while(!pq.empty()) { u=pq.top().Y; pq.pop(); for(auto [node,w]:g[u]) { if(arr[u]+w<arr[node]) { arr[node]=arr[u]+w; pq.push({-arr[node],node}); } } } } int main() { pow_2[0]=1; for(int i=1;i<=4;i++)pow_2[i]=pow_2[i-1]*2; scanf("%lld%lld%lld",&n,&num,&m); for(int i=0;i<=31;i++) { for(int j=1;j<=n;j++) { d[i][j]=1e18; } } for(int i=0;i<num;i++)scanf("%lld",&city[i]); for(int i=1;i<=m;i++) { scanf("%lld%lld%lld",&u_i,&v_i,&w_i); g[u_i].pb({v_i,w_i}); g[v_i].pb({u_i,w_i}); } for(int i=0;i<num;i++) { d[pow_2[i]][city[i]]=0; dij(d[pow_2[i]]); } for(int i=0;i<num-1;i++) { for(int j=i+1;j<num;j++) { val=(pow_2[i]|pow_2[j]); for(int k=1;k<=n;k++) { d[val][k]=d[pow_2[i]][k]+d[pow_2[j]][k]; } dij(d[val]); } } for(int i=1;i<pow_2[num];i++) { ll kmp=0; for(int j=0;j<num;j++) { if((i|pow_2[j])==i)++kmp; } some[i]=kmp; bit[kmp].pb(i); } for(int i=3;i<=num;i++) { for(int j=1;j<=i/2;j++) { for(auto k:bit[j]) { for(auto l:bit[i-j]) { val=(k|l); if(some[val]==some[k]+some[l]) { //printf("%lld %lld\n",k,l); for(int c=1;c<=n;c++) { //d[val][c]=d[l][c]+d[k][c]; dp[c]=d[l][c]+d[k][c]; } dij(dp); for(int c=1;c<=n;c++)d[val][c]=min(d[val][c],dp[c]); } } } } } ll ans=1e18; for(int i=1;i<=n;i++) { ans=min(ans,d[pow_2[num]-1][i]); } printf("%lld\n",ans); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2772 KB | Output is correct |
2 | Correct | 2 ms | 2772 KB | Output is correct |
3 | Correct | 2 ms | 2772 KB | Output is correct |
4 | Correct | 2 ms | 2772 KB | Output is correct |
5 | Incorrect | 2 ms | 2788 KB | Output isn't correct |
6 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 913 ms | 42256 KB | Output is correct |
2 | Correct | 926 ms | 41376 KB | Output is correct |
3 | Correct | 623 ms | 35368 KB | Output is correct |
4 | Correct | 88 ms | 12116 KB | Output is correct |
5 | Correct | 444 ms | 42164 KB | Output is correct |
6 | Correct | 80 ms | 12040 KB | Output is correct |
7 | Correct | 5 ms | 3156 KB | Output is correct |
8 | Correct | 3 ms | 3156 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 3156 KB | Output is correct |
2 | Correct | 10 ms | 3284 KB | Output is correct |
3 | Correct | 8 ms | 3184 KB | Output is correct |
4 | Correct | 8 ms | 3160 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3109 ms | 42220 KB | Output is correct |
2 | Correct | 2906 ms | 43132 KB | Output is correct |
3 | Correct | 2244 ms | 36260 KB | Output is correct |
4 | Correct | 1632 ms | 30096 KB | Output is correct |
5 | Correct | 388 ms | 17324 KB | Output is correct |
6 | Correct | 179 ms | 15864 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 2059 ms | 84668 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |