Submission #73389188
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vi = vector<int>;
using vll = vector<ll>;
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) ((int)(x).size())
#define f first
#define s second
#define rep(i, a, b) for (int i = (a); i < (b); ++i)
#define per(i, a, b) for (int i = (b) - 1; i >= (a); --i)
void fast_io() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
}
#ifdef LOCAL
#define debug(x) cerr << #x << " = " << (x) << endl;
#else
#define debug(x)
#endif
const int INF = 1e9 + 7;
const ll LINF = 1e18;
ll dp[(1<<20)+10][20];
ll record[(1<<20)+10][20];
vector<pll> use;
ll n,m;
ll dis(int a,int b){
return llabs(use[a].first-use[b].first)+llabs(use[a].second-use[b].second);
}
void solve() {
cin>>n>>m;
ll S,t;
cin>>S>>t;
use.pb({S/n+1-((S%n)==0),S%n+n*((S%n)==0)});
use.pb({t/n+1-((t%n)==0),t%n+n*((t%n)==0)});
rep(i,0,m){
ll tmp;
cin>>tmp;
use.pb({tmp/n+1-((tmp%n)==0),tmp%n+n*((tmp%n)==0)});
}
// for(auto u:use){
// cerr<<u.first<<" "<<u.second<<"\n";
// }
m++;
m++;
rep(i,0,(1<<m)){
rep(j,0,m){
dp[i][j]=1e18;
record[i][j]=-1;
}
}
dp[1][0]=0;
// rep(i,0,m){
// dp[(1<<i)][i]=0;
// }
// dp[0][0]=0;
// dp[1][1]=0;
rep(i,0,(1<<m)){
rep(j,0,m){
if((i&(1<<j))==0)continue;
rep(k,0,m){
if((i&(1<<k))==0)continue;
if(j==k)continue;
if(dp[(i^(1<<j))][k]+dis(j,k)<dp[i][j]){
dp[i][j]=dp[(i^(1<<j))][k]+dis(j,k);
record[i][j]=k;
}
// dp[i][j]=min(dp[i][j],dp[(i^(1<<j))][k]+dis(j,k));
// dp[i][j]=min(dp[i][j],dp[i][k]+dis(j,k));
}
}
// rep(j,0,m){
// if(!(i&(1<<j)))continue;
// rep(k,0,m){
// if(!(i&(1<<k)))continue;
// if(j==k)continue;
// dp[i][j]=min(dp[i][j],dp[i][k]+dis(j,k));
// // dp[i][j]=min(dp[i][j],dp[i][k]+dis(j,k));
// }
// }
}
// rep(i,0,(1<<m)){
// rep(j,0,m){
// if(dp[i][j]==1e18)cerr<<-1<<" ";
// else cerr<<dp[i][j]<<' ';
// }
// cerr<<"\n";
// }
vll sstt;
// sstt.pb(1);
int star=1;
int sta=(1<<m)-1;
while(sta>0){
// cerr<<sta<<" "<<star<<"\n";
sstt.pb(star);
ll tmp=sta;
sta^=(1<<star);
star=record[tmp][star];
}
// cerr<<"\n";
// for(auto u:sstt){
// cerr<<u<<" ";
// }
// cerr<<m;
cout<<dp[(1<<m)-1][1];
}
int main() {
fast_io();
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Warehouse Robot Delivery |
| User | eggeggwe |
| Language | C++23 (GCC 15.2.0) |
| Score | 433 |
| Code Size | 3019 Byte |
| Status | AC |
| Exec Time | 93 ms |
| Memory | 44672 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 433 / 433 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample01.txt, sample02.txt, sample03.txt |
| All | sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, in65.txt, in66.txt, in67.txt, in68.txt, in69.txt, in70.txt, in71.txt, in72.txt, in73.txt, in74.txt, in75.txt, in76.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 1 ms | 3712 KiB |
| in02.txt | AC | 1 ms | 3564 KiB |
| in03.txt | AC | 87 ms | 44380 KiB |
| in04.txt | AC | 1 ms | 3420 KiB |
| in05.txt | AC | 1 ms | 3460 KiB |
| in06.txt | AC | 3 ms | 4740 KiB |
| in07.txt | AC | 1 ms | 3784 KiB |
| in08.txt | AC | 91 ms | 44672 KiB |
| in09.txt | AC | 2 ms | 3952 KiB |
| in10.txt | AC | 10 ms | 8584 KiB |
| in11.txt | AC | 90 ms | 44672 KiB |
| in12.txt | AC | 90 ms | 44476 KiB |
| in13.txt | AC | 84 ms | 44496 KiB |
| in14.txt | AC | 90 ms | 44380 KiB |
| in15.txt | AC | 1 ms | 3568 KiB |
| in16.txt | AC | 90 ms | 44424 KiB |
| in17.txt | AC | 91 ms | 44548 KiB |
| in18.txt | AC | 91 ms | 44380 KiB |
| in19.txt | AC | 90 ms | 44672 KiB |
| in20.txt | AC | 88 ms | 44552 KiB |
| in21.txt | AC | 84 ms | 44476 KiB |
| in22.txt | AC | 84 ms | 44488 KiB |
| in23.txt | AC | 90 ms | 44596 KiB |
| in24.txt | AC | 91 ms | 44524 KiB |
| in25.txt | AC | 91 ms | 44528 KiB |
| in26.txt | AC | 84 ms | 44524 KiB |
| in27.txt | AC | 1 ms | 3692 KiB |
| in28.txt | AC | 2 ms | 4004 KiB |
| in29.txt | AC | 1 ms | 3528 KiB |
| in30.txt | AC | 1 ms | 3516 KiB |
| in31.txt | AC | 91 ms | 44596 KiB |
| in32.txt | AC | 90 ms | 44616 KiB |
| in33.txt | AC | 1 ms | 3772 KiB |
| in34.txt | AC | 1 ms | 3692 KiB |
| in35.txt | AC | 1 ms | 3656 KiB |
| in36.txt | AC | 1 ms | 3712 KiB |
| in37.txt | AC | 1 ms | 3784 KiB |
| in38.txt | AC | 1 ms | 3656 KiB |
| in39.txt | AC | 1 ms | 3548 KiB |
| in40.txt | AC | 3 ms | 4872 KiB |
| in41.txt | AC | 1 ms | 3720 KiB |
| in42.txt | AC | 1 ms | 3840 KiB |
| in43.txt | AC | 89 ms | 44548 KiB |
| in44.txt | AC | 90 ms | 44604 KiB |
| in45.txt | AC | 93 ms | 44528 KiB |
| in46.txt | AC | 90 ms | 44380 KiB |
| in47.txt | AC | 89 ms | 44528 KiB |
| in48.txt | AC | 88 ms | 44548 KiB |
| in49.txt | AC | 92 ms | 44604 KiB |
| in50.txt | AC | 91 ms | 44488 KiB |
| in51.txt | AC | 88 ms | 44548 KiB |
| in52.txt | AC | 91 ms | 44496 KiB |
| in53.txt | AC | 91 ms | 44524 KiB |
| in54.txt | AC | 91 ms | 44420 KiB |
| in55.txt | AC | 3 ms | 4808 KiB |
| in56.txt | AC | 89 ms | 44604 KiB |
| in57.txt | AC | 1 ms | 3460 KiB |
| in58.txt | AC | 1 ms | 3528 KiB |
| in59.txt | AC | 1 ms | 3516 KiB |
| in60.txt | AC | 1 ms | 3628 KiB |
| in61.txt | AC | 1 ms | 3564 KiB |
| in62.txt | AC | 1 ms | 3672 KiB |
| in63.txt | AC | 1 ms | 3460 KiB |
| in64.txt | AC | 1 ms | 3420 KiB |
| in65.txt | AC | 1 ms | 3656 KiB |
| in66.txt | AC | 1 ms | 3684 KiB |
| in67.txt | AC | 1 ms | 3636 KiB |
| in68.txt | AC | 1 ms | 3620 KiB |
| in69.txt | AC | 84 ms | 44604 KiB |
| in70.txt | AC | 84 ms | 44556 KiB |
| in71.txt | AC | 1 ms | 3800 KiB |
| in72.txt | AC | 1 ms | 3656 KiB |
| in73.txt | AC | 1 ms | 3568 KiB |
| in74.txt | AC | 1 ms | 3672 KiB |
| in75.txt | AC | 87 ms | 44552 KiB |
| in76.txt | AC | 89 ms | 44464 KiB |
| sample01.txt | AC | 1 ms | 3592 KiB |
| sample02.txt | AC | 1 ms | 3656 KiB |
| sample03.txt | AC | 1 ms | 3588 KiB |