记录编号 583519 评测结果 AAAAAAAAAA
题目名称 [NOI 2014]起床困难综合症 最终得分 100
用户昵称 Gravatar超人 是否通过 通过
代码语言 C++ 运行时间 0.443 s
提交时间 2023-10-17 21:55:04 内存使用 10.69 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N =1e6; 
long long n,m,s;
long long a[N];
char ch[N],c[N];
int income(int u,int x)
{
    for(int i=1;i<=n;i++)
    {
        int b=(a[i]>>u)&1;
        if(c[i]=='A') x&=b;
        else if(c[i]=='O') x|=b;
        else x^=b;
    }
    return x;
}
int main()
{
    freopen("sleep.in","r",stdin);
    freopen("sleep.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>ch>>a[i];
        c[i]=ch[0];
    }
    int u=0;
    for(int i=29;i>=0;i--)
    {
        int x=0,y=0;
        x=income(i,1);
        y=income(i,0);
        if(u+(1<<i)<=m && x>y)
        {
            u+=(1<<i);
            s+=(x<<i); 
        }
        else s+=(y<<i);
    }
    cout<<s<<endl;
    return 0;
}