Untitled
unknown
plain_text
4 years ago
1.6 kB
11
Indexable
#include <stdio.h>
int H[20];
int even[20];
int C[20];
int N,S,T;
int max_energy,max_step;
int step[20];
void let(int s,int t,int st);
void end(int st);
int main(void){
int st;
max_energy=0;
max_step=0;
scanf("%d %d %d",&N,&S,&T);
for(int i=1;i<=N;i++){
scanf("%d",&H[i]);
}
for(int i=1;i<=N;i++){
scanf("%d",&C[i]);
}
for(int i=1;i<=N;i++){
even[i]=0;
}
step[0]=S;
let(S,T,0);
printf("%d %d",max_energy,max_step);
return 0;
}
void let(int s,int t,int st){
printf("A");
if(s==t){
end(st);
return;
}
else{
if(even[s-1]==0){
step[st]=s-1;
even[s-1]=1;
let(s-1,t,st+1);
}
if(even[s+1]==0){
st++;
step[st]=s-1;
even[s+1]=1;
let(s+1,t,st+1);
}
for(int i=1;i<=N;i++){
if(even[i]==0 && even[i]==even[s]){
st++;
step[st]=s-1;
even[i]=1;
let(i,t,st+1);
}
}
}
}
void end(int st){
printf("B");
int energy=0,a;
for(int i=st;i>0;i--){
a=(H[step[st]]-H[step[st-1]]);
if(a>=0){
energy=energy+a;
}
else{
energy=energy-a;
}
}
if(energy>max_energy){
max_energy=energy;
max_step=st;
}
else if(energy==max_energy && st>max_step){
max_step=st;
}
}Editor is loading...