A.
#include <bits/stdc++.h> using namespace std; int main () { long long n; cin >> n; if (n & 1) cout << 1 << endl; else{ cout << -1 << endl; } }
B.
#include <bits/stdc++.h> using namespace std; string fk(string s) { int start=0,length=0; for(int i=0,j=0,k=0;i<s.size()&&s.size()-i>length/2;i++,j=i,k=i) { while(j>0){if(s[j]==s[j-1]){j--;}else break;} while(k<s.size()-1){if(s[k]==s[k+1]){k++;i=k-1;}else break;} while(j>0&&k<s.size()-1){if(s[k+1]==s[j-1]){k++;j--;}else break;} if(length<k-j+1){length=k-j+1;start=j;} } return s.substr(start,length); } int main(){ string s; cin>>s; int n=s.size(); s+=s; cout<<min(n,(int)fk(s).size())<<endl; }
D
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 5e6 + 10; int n; ll a[N], pre[N], sub[N]; int main() { scanf("%d", &n); for(int i = 1 ; i <= n ; ++ i) { scanf("%lld", &a[i]); pre[i] = pre[i - 1] | a[i]; } for(int i = n ; i >= 1 ; -- i) { sub[i] = sub[i + 1] | a[i]; } ll ans = 0; for(int i = 1 ; i <= n ; ++ i) { ans = max(ans, pre[i - 1] | sub[i + 1]); } printf("%lld ", ans); }