제출 #1198025

#제출 시각아이디문제언어결과실행 시간메모리
1198025brover29Logičari (COCI21_logicari)C++17
0 / 110
3 ms4932 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...