QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#622470 | #7866. Teleportation | wzxtsl# | RE | 0ms | 0kb | C++23 | 1.3kb | 2024-10-08 21:56:31 | 2024-10-08 21:56:33 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define int long long
#define For(i,a,aa) for(int i=a;i<=aa;i++)
const int N=1e5+7;
int n,k;
int a[N];
int minn=0x3f3f3f3f3f;
int d[N];
void dfs(int pos,int cnt){
if(pos==k){minn=min(minn,cnt);return;}
int beg=(pos+a[pos])%n;
for(int i=beg;i<n;i++){
if(d[i]){
if(d[i]>cnt+i-beg+1){
d[i]=min(d[i],cnt+i-beg+1);
// minn=min(minn,d[i]);
dfs(i,cnt+i-beg+1);
}
}
else{
d[i]=cnt+i-beg+1;
// minn=min(minn,d[i]);
dfs(i,cnt+i-beg+1);
}
}
for(int i=0;i<=beg-1;i++){
if(d[i]){
if(d[i]>i+n-beg+cnt){
d[i]=min(d[i],i+n-beg+cnt);
// minn=min(minn,d[i]);
dfs(i,i+n-beg+cnt);
}
}
else{
d[i]=i+n-beg+cnt;
// minn=min(minn,d[i]);
dfs(i,i+n-beg+cnt);
}
}
}
void solve(){
cin>>n>>k;
For(i,0,n-1)
cin>>a[i];
dfs(0,0);
cout<<minn<<endl;
}
signed main(){
fast;
int t=1;
//cin>>t;
while(t--){
solve();
}
system("pause");
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Dangerous Syscalls
input:
4 3 0 1 2 3
output:
4