牛客小白赛4月12日

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\n", ans);
}

猜你喜欢

转载自www.cnblogs.com/lightac/p/10699335.html
今日推荐