#include <bits/stdc++.h>
//qwerty47924692
using namespace std;
using ll = long long;
const ll N=2e5+29;
const string br="617283";
#define sz(a)(ll)a.size()
#define f first
#define s second
ll n,dp[N][2][2][2][2],used[N],w[N],pr[N];
vector<ll>c,g[N];
void get(ll s,ll f){
while(s!=f){
c.push_back(s);
s=pr[s];
}
c.push_back(f);
for(ll i:c)w[i]=1;
}void dfs(ll v){
used[v]=1;
for(ll to:g[v]){
if(used[to]==2)continue;
if(used[to]==1){
get(v,to);
continue;
}dfs(to);
}
used[v]=2;
}
//void calc(ll v,ll k=1,ll pr=0){
// dp[v]=k;
// k^=1;
// for(ll to:g[v]){
// if(to==pr||w[to])continue;
// calc(to,k,v);
// dp[v]+=dp[to];
// }
//}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>n;
// if(n==3){
// cout<<-1;
// return 0;
// }
for(ll i=2;i<=n;i++){
for(ll j1=0;j1<2;j1++){
for(ll j2=0;j2<2;j2++){
for(ll ji=0;ji<2;ji++){
for(ll ji1=0;ji1<2;ji1++){
dp[i][j1][j2][ji][ji1]=1e18;
}
}
}
}
}
// for(ll i=1;i<=n;i++){
// ll v,u;
// cin>>v>>u;
// g[v].push_back(u);
// g[u].push_back(v);
// }
//dfs(1);
for(ll j1=0;j1<2;j1++){
for(ll j2=0;j2<2;j2++){
dp[2][j1][j2][j2][j1]=j1+j2;
}
}
for(ll i=3;i<=n;i++){
for(ll j1=0;j1<2;j1++){
for(ll j2=0;j2<2;j2++){
for(ll ji=0;ji<2;ji++){
for(ll ji1=0;ji1<2;ji1++){
if(i==3)ji1=j2;
dp[i][j1][j2][ji][ji1]=dp[i-1][j1][j2][ji1][1-ji]+ji;
if(i==3)break;
}
}
}
}
}ll ans=1e18;
for(ll j1=0;j1<2;j1++){
for(ll j2=0;j2<2;j2++){
ans=min(ans,dp[n][j1][j2][1-j2][1-j1]);
if(dp[n][j1][j2][1-j2][1-j1]==1){
// cout<<j1<<' '<<j2<<'\n';
}
}
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |