A — Moo Language School code :
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; int main() { ll tt; cin >> tt; while(tt--) { ll n, k; cin >> n >> k; string s; cin >> s; ll x = n / k; ll ans = 0; ll am = 0; while(x--) { ll cnt = 0; for(ll j = 0 + am * k; j < am * k + k; j++) if(s[j] == '0') cnt++; if(cnt == 0) ans++; am++; } cout << ans << endl; }
}
}
B — Minus Two code :
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; int main(){ ll n; cin >> n; ll ocnt = 0; ll cnt0 = 0; ll cnt1 = 0;
for (ll i = 0; i < n; i++) {
ll x;
cin >> x;
if (x % 2 != 0)
ocnt++;
else {
if (x % 4 == 0)
cnt0++;
else
cnt1++;
}
}
cout << max({ocnt, cnt0, cnt1}) << endl;} } C — 101 code :
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; ll a[200000]; int main(){ ll tt = 1; cin >> tt; while(tt--) { ll n; cin >> n; for(ll i=0;i<n;i++) cin>>a[i]; for(ll i=0;i<n;i++) { if(a[i]==-1) a[i]=1; if(a[i]==1) break; } for(ll i=n-1;i>-1;i--) { if(a[i]==-1) a[i]=1; if(a[i]==1) break; } for(ll i=0;i<n;i++) if(a[i]==-1) a[i]=0; for(ll i=0;i<n;i++) cout<<a[i]<<' '; cout<<endl;
}
} D — MEX Multiset code:
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; ll a[200000], ans[200000]; int main(){ ll tt = 1; cin >> tt; while(tt--) { ll n; cin>>n; ll c0=0; for(ll i=0;i<n;i++) { cin>>a[i]; if(a[i]==0) { if(c0==0) ans[i]=0; else ans[i]=1; c0++; } else ans[i]=2; } if(c0==0 or c0>=2) { cout << "YES" << endl; for(ll i=0;i<n;i++) cout<<(char)(ans[i]+'A'); cout << endl; } else cout << "NO" << endl; } } E — Treasure Map Destruction (Constructive Version) code:
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; ll a[200000],d[200000],h[200000],inf=1000000000; int main(){ ll tt = 1; cin >> tt; while(tt--) { ll n; cin>>n; for(ll i=0;i<n;i++) { cin>>a[i]; if(a[i]!=-1) d[i]=a[i]; else d[i]=0; } for(ll i=n-1;i>0;i--) d[i-1]=max(d[i-1],d[i]-1); for(ll i=0;i<n-1;i++) d[i+1]=max(d[i+1],d[i]-1); for(ll i=0;i<n;i++) { if(d[i]==0) h[i]=0; else h[i]=inf; } for(ll i=n-1;i>0;i--) h[i-1]=min(h[i-1],h[i]+1); for(ll i=0;i<n-1;i++) h[i+1]=min(h[i+1],h[i]+1); ll flag=0; for(ll i=0;i<n;i++) if(a[i]!=-1 and a[i]!=h[i]) flag=1; if(flag) cout<<"-1" << endl; else { for(i=0;i<n;i++) { if(d[i]==0) cout<<'1'; else cout<<'0'; } cout<<endl; } } } F — Binary Bubble Sort Inversions code:
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; ll a[500000]; int main(){ ll tt = 1; cin >> tt; while(tt--) { ll n; cin>>n; string s; ll sl=0; ll sr=0; ll ans=0; for(ll i=0;i<n;i++) { cin>>a[i]; if(a[i]==0) { sr++; ans+=sl; } else sl++; } cin>>s; ll pl=0; ll pr=n-1; while(pl<n and a[pl]==0) { sr--; pl++; } while(pr>-1 and a[pr]==1) { sl--; pr--; } cout<<ans<<' '; for(ll i=0;i<n;i++) { if(s[i]=='1') { ans-=max(sr,0LL); sl--; pl++; while(pl<n&&a[pl]==0) { sr--; pl++; } } else { ans -= max(sl,0LL); sr--; pr--; while(pr>-1 and a[pr]==1) { sl--; pr--; } } cout << ans << ' '; } cout << endl; } } G — Index Removal code:
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; ll a[200000],ans[200000]; int main(){ ll tt = 1; cin >> tt; while(tt--) { ll n, k; cin>>n>>k; int128 s; for(ll i=0;i<n;i++) cin>>a[i]; for(ll i=n-1;i>-1;i--) a[i]-=a[0]; for(ll i=0;i<n;i++) a[i]=k*i-a[i]; ll s=0; ll j=n-1; ans[0]=0; for(ll i=n-1;i>0;i--) { ll j; for(;j>i and a[j]-a[i-1]>=k;j--) s-=a[j]; ans[i]=(ll)((int128)(a[i-1]+k)*(j-i)-s); s+=a[i]; } for(ll i=0;i<n;i++) cout<<ans[i]<<' '; cout<<endl; } } H — Treasure Map Destruction (Counting Version) code:
include<bits/stdc++.h>
define endl "\n"
define ll long long
using namespace std; const ll mod=1000000007; ll a[200000],d[200000],h[200000],f1[200000],f2[200000],inf=1000000000, f[200010]; int main(){ f[0]=1; f[1]=1; for(i=2;i<=200005;i++) f[i]=(f[i-1]+f[i-2])%mod; ll tt = 1; cin >> tt; while(tt--) { ll n; cin>>n; for(ll i=0;i<n;i++) { cin>>a[i]; if(a[i]!=-1)d[i]=a[i]; else d[i]=0; } for(ll i=n-1;i>0;i--) d[i-1]=max(d[i-1],d[i]-1); for(ll i=0;i<n-1;i++) d[i+1]=max(d[i+1],d[i]-1); for(ll i=0;i<n;i++) { if(d[i]==0) h[i]=0; else h[i]=inf; } for(ll i=n-1;i>0;i--) h[i-1]=min(h[i-1],h[i]+1); for(ll i=0;i<n-1;i++) h[i+1]=min(h[i+1],h[i]+1); flag=0; for(ll i=0;i<n;i++) { if(a[i]!=-1 and a[i]!=h[i])flag=1; } if(flag) { cout<<"0" << endl; continue; } for(ll i=0;i<n;i++) { f1[i]=0; f2[i]=0; } ll flag=0; for(ll i=0;i<n;i++) { if(a[i]==-1) continue; flag=1; if(a[i]==0) { f1[i]=1; continue; } if(i-a[i]<0 or h[i-a[i]]>0)f1[i+a[i]]=1; else if(i+a[i]>=n or h[i+a[i]]>0) f1[i-a[i]]=1; else f2[i-a[i]]=1; } ll c=0; ll ans=1; for(ll i=0;i<n;i++) { if(h[i]) continue; if(f1[i]) { ans=ans*f[c+1]%mod; c=0; } else { c++; if(!f2[i]) { ans=ans*f[c+1]%mod; c=0; } } } ans = ans*f[c+1]%mod; if(!flag) ans=(ans+mod-1)%mod; cout<<ans<<endl; } } Thank you all for watching!)








