5. 函数一连串
题目ID:7068必做题100分
最新提交:
Wrong Answer
70 分
历史最高:
Wrong Answer
70 分
时间限制: 1000ms
空间限制: 256000kB
题目描述
时间限制:1s 空间限制:250M
题目描述:
现有两个函数 FF 和 GG ,定义如下:
void F(int &x) {
x ^= x & (x << 3);
x ^= x & (x >> 2);
x %= 65536;
}
void G(int &x) {
x ^= x & (x << 2);
x ^= x & (x >> 3);
x %= 65536;
}
现在给出一仅包含 F
和 G
的字符串 ss 以及一个正整数 xx ,请输出按照字符串从左到右的顺序对 xx 调用相应函数的最终结果。
例如,若字符串为 FFGF
,则需要依次执行:
F(x);
F(x);
G(x);
F(x);
并输出最终结果。
输入格式:
第一行包含一个字符串 ss 以及一个正整数 xx 。(1≤∣s∣≤105)(1≤∣s∣≤105),(1≤x≤65535)(1≤x≤65535)
输出格式:
输出共一行,仅包含一个非负整数,表示答案。
样例输入:
FFGF 13
样例输出:
4
我这个怎么错了?好心人帮我看一看吧!!!
#include<bits/stdc++.h>
using namespace std;
#define long long int
void F(int &x) {
x ^= x & (x << 3);
x %= 65536;
x ^= x & (x >> 2);
x %= 65536;
}
void G(int &x) {
x ^= x & (x << 2);
x %= 65536;
x ^= x & (x >> 3);
x %= 65536;
}
int main() {
string s;
cin>>s;
int x, l=s.size();
cin >> x;
for(int i=0;i<l;i++) if(s[i]=='F') F[x]; else G(x);
cout<<x;
return 0;
}
送你一个 吧!!!