# j124. 3. 石窟探險
###### tags: `APCS` `遞迴` `dfs`
* 此題需要邊讀輸入邊尋訪
```C++
#include <bits/stdc++.h>
using namespace std;
long long int ans=0;
int traverse(){
int n; // 一定要在這裡重新宣告,不能設全域
cin>>n;
if (n==-0) return 0;
if (n%2==0){
int left,right;
left=traverse();
right=traverse();
if (left!=0) ans+=abs(n-left);
if (right!=0) ans+=abs(right-n);
}
else if (n%2!=0){
int left,right,mid;
left=traverse();
mid=traverse();
right=traverse();
if (left!=0) ans+=abs(n-left);
if (mid!=0) ans+=abs(n-mid);
if (right!=0) ans+=abs(n-right);
}
return n;
}
int main(){
traverse();
cout<<ans;
return 0;
}
```