#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;voidsolve(){
int n; cin >> n;
string s; cin >> s;bool f =false, F =false;for(int i =0; i < n; i ++){
if(s[i]=='d'){
for(int j = i +1; j < n; j ++){
if(s[j]=='f'){
for(int k = j +1; k < n; k ++){
if(s[k]=='s'){
f =true;}}}}}}for(int i =0; i < n; i ++){
if(s[i]=='D'){
for(int j = i +1; j < n; j ++){
if(s[j]=='F'){
for(int k = j +1; k < n; k ++){
if(s[k]=='S'){
F =true;}}}}}}
cout << F <<" "<< f << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}
B
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3f#definexfirst#defineysecond#defineintlonglongusingnamespace std;typedef pair<int,int> pii;int dc[3]={
-1,0,1};voidsolve(){
int n; cin >> n;int l =2, r =2;
vector<pii>lp, rp;
map<pii,bool>st;for(int i =0; i < n; i ++){
int r, c; cin >> r >> c;
st[{
c,r}]=true;if(c <=0){
lp.push_back({
c, r});}elseif(c >0){
rp.push_back({
c, r});}}if(lp.size()){
for(int i =0; i < lp.size(); i ++){
if(lp[i].first ==0and lp[i].second ==2){
if(!st[{
-1,1}]){
l =min(1ll, l);}else{
l =0;}continue;}for(int j =0; j <3; j ++){
int nc = lp[i].x + dc[j];int nr =3- lp[i].y;if(st[{
nc, nr}]){
l =0;}else{
l =min(l,1ll);}}}}if((st[{
-1,1}]and l ==1)){
st[{
0,2}]=true;}if(l ==2){
st[{
0,2}]=true;}if(rp.size()){
for(int i =0; i < rp.size(); i ++){
for(int j =0; j <3; j ++){
int nc = rp[i].x + dc[j];int nr =3- rp[i].y;if(st[{
nc, nr}]){
r =0;}else{
r =min(r,1ll);}}}}else{
if(st[{
0,2}]){
r =1;}}int ans = l + r;
cout << ans << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}
C
#include<bits/stdc++.h>#defineendl'\n'#defineintlonglong#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3f3f3f3f3fusingnamespace std;voidsolve(){
int n, q, tc; cin >> n >> q >> tc;
vector<int>t(n +1);
vector<int>s(n +1);
vector<int>ss(n +1);for(int i =1; i <= n; i ++){
cin >> t[i];}sort(t.begin()+1, t.end());for(int i =1; i <= n; i ++){
s[i]= s[i -1]+ t[i];}for(int i =1; i <= n; i ++){
ss[i]= ss[i -1]+ s[i];}while(q--){
int M; cin >> M;int l =1, r = n;while(l < r){
int mid = l + r >>1;int cnt = n - mid +1;if(cnt * tc <= M){
r = mid;}else{
l = mid +1;}}if(l == n){
if(tc > M){
cout << s[n]+ tc << endl;continue;}}
cout << s[l -1]+ tc << endl;}}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;
t =1;//cin >> t;while(t--)solve();}
D
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3f#defineintlonglongusingnamespace std;voidsolve(){
int n, m; cin >> n >> m;
vector<int>a(n);
map<int,int>cnt;
set<int>ans;
ans.insert(0);for(int i =0; i < n; i ++){
cin >> a[i];
cnt[a[i]]+=1;}if(n >=30){
//一定要减少绝对值不等于1的数字个数。for(auto[x, y]: cnt){
if(n - cnt[x]- cnt[x -2]>30)continue;int mul =1;bool flag =true;for(int i =0; i < n; i ++){
mul = mul *(a[i]-(x -1));if(abs(mul)>1e9){
flag =false;break;}}if(flag)
ans.insert(mul);
mul =1, flag =true;for(int i =0; i < n; i ++){
mul = mul *(a[i]-(x +1));if(abs(mul)>1e9){
flag =false;break;}}if(flag)
ans.insert(mul);}}else{
//如果n <= 30sort(a.begin(), a.end());int tmp = a[0];for(int i =0; i < n; i ++){
a[i]-= tmp;}for(int i =-1e6; i <=1e6; i ++){
int mul =1;bool flag =true;for(int j =0; j < n; j ++){
mul = mul *(a[j]+ i);if(abs(mul)>1e9){
flag =false;break;}}if(flag)
ans.insert(mul);}reverse(a.begin(), a.end());
tmp = a[0];for(int i =0; i < n; i ++){
a[i]-= tmp;}for(int i =-1e6; i <=1e6; i ++){
int mul =1;bool flag =true;for(int j =0; j < n; j ++){
mul = mul *(a[j]+ i);if(abs(mul)>1e9){
flag =false;break;}}if(flag)
ans.insert(mul);}}while(m--){
int x; cin >> x;if(ans.count(x)){
cout <<"Yes"<< endl;}else{
cout <<"No"<< endl;}}}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;
t =1;//cin >> t;while(t--)solve();}
E
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;typedef pair<int,int> pii;voidsolve(){
int n, m; cin >> n >> m;
vector<int>a(n);
vector<pii>b(m);for(int i =0; i < n; i ++){
cin >> a[i];}for(int i =0; i < m; i ++){
int u, v;
cin >> u >> v;
u --, v --;
b[i]={
u, v};}int ans =11;
function<void(int)> dfs =[&](int u)->void{
if(u >= m){
int sc = a[0];int top =1;for(int i =1; i < n; i ++){
if(a[i]> sc){
top ++;}}
ans =min(ans, top);return;}int x = b[u].first, y = b[u].second;
a[x]+=3;dfs(u +1);//回溯
a[x]-=3;
a[y]+=3;dfs(u +1);
a[y]-=3;
a[x]+=1, a[y]+=1;dfs(u +1);
a[x]-=1, a[y]-=1;};dfs(0);
cout << ans << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}
F
#include<bits/stdc++.h>#defineendl'\n'#defineintlonglong#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;constint N =1e5+10;constint mod =1e9+7;int fact[N], infact[N];intqmi(int a,int b,int p){
int res =1;while(b){
if(b &1)
res = res * a % p;
a = a * a % p;
b >>=1;}return res;}voidinit(){
fact[0]= infact[0]=1;for(int i =1; i < N; i ++){
fact[i]= fact[i -1]* i % mod;
infact[i]= infact[i -1]*qmi(i, mod -2, mod)% mod;}}voidsolve(){
int n, m; cin >> n >> m;int res =0;for(int i =0; i <= m; i ++){
if((m - i)%2){
res =((res -(qmi(i, n, mod)* infact[i]% mod * infact[m - i]% mod))% mod + mod)% mod;}else{
res =(res +(qmi(i, n, mod)* infact[i]% mod * infact[m - i]% mod))% mod;}}
cout << res << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;
t =1;// cin >> t;init();while(t--)solve();}
G
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#definexfirst#defineysecond#defineintlonglong#defineINF0x3f3f3f3fusingnamespace std;typedef pair<int,int> pii;voidsolve(){
int n, m; cin >> n >> m;
vector<pii>a(n +1);for(int i =1; i <= n; i ++){
cin >> a[i].x >> a[i].y;}sort(a.begin(), a.end());
vector<int>s(n +1);for(int i =1; i <= n; i ++){
s[i]= s[i -1]+ a[i].y;}int ans = m;for(int i = n; i >=1; i --){
int dis = a[i].x - s[i];if(dis > m){
continue;}
ans =max(ans, m + s[i]);}
cout << ans << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}
H
#include<bits/stdc++.h>#defineendl'\n'#defineintlonglong#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;voidsolve(){
int n, m; cin >> n >> m;
vector<int>v(n),w(n);for(int i =0; i < n; i ++){
cin >> v[i]>> w[i];}int ans =0, pre =0;for(int i =31; i >=0; i --){
int x = pre;if((m >> i)&1){
x +=(1<< i)-1;
pre +=(1<< i);}int sum =0;for(int j =0; j < n; j ++){
if((x | w[j])== x){
sum += v[j];}}
ans =max(ans, sum);}int sum =0;for(int j =0; j < n; j ++){
if((m | w[j])== m){
sum += v[j];}}
ans =max(ans, sum);
cout << ans << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}
I
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;
uniform_int_distribution<int>u1(-99,99);//生成圆心
uniform_int_distribution<int>u2(1,100);//生成半径
default_random_engine e;voidtest(){
int n =1e5;double r1 =0;for(int i =1; i <= n; i ++){
int x =u1(e), y =u1(e);while(1){
int r =u2(e);if(x + r >100|| x - r <-100|| y + r >100|| y - r <-100){
continue;}else{
r1 +=(r);break;}}}double r2 =0;for(int i =1; i <= n; i ++){
while(1){
int x =u1(e), y =u1(e);int r =u2(e);if(x + r >100|| x - r <-100|| y + r >100|| y - r <-100){
continue;}else{
r2 +=(r);break;}}}
r1 = r1 / n;
r2 = r2 / n;
cout << r1 <<" "<< r2 << endl;}voidsolve(){
int n; cin >> n;double sum =0;for(int i =0; i < n; i ++){
int x, y, r; cin >> x >> y >> r;
sum += r;}
sum /= n;if((int)sum ==17){
cout <<"bit-noob"<< endl;}else{
cout <<"buaa-noob"<< endl;}}signedmain(){
e.seed(time(NULL));
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)// solve();test();}
J
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;voidsolve(){
int n, x, y; cin >> n >> x >> y;
vector<int>a(n);for(int i =0; i < n; i ++){
cin >> a[i];}auto check =[&](int dis)->bool{
// cout << dis << endl;
set<int>st;
st.insert(x), st.insert(y);if(abs(x - y)> dis){
returnfalse;}for(int i =0; i < a.size(); i ++){
while(st.size()andabs(*st.begin()- a[i])> dis){
st.erase(st.begin());}while(st.size()andabs(*st.rbegin()- a[i])> dis){
st.erase(*st.rbegin());}if(!st.size()){
returnfalse;}
st.insert(a[i]);}returntrue;};int l =0, r =1e9;while(l < r){
int mid = l + r >>1;if(check(mid)){
r = mid;}else{
l = mid +1;}}
cout << l << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;
t =1;// cin >> t;while(t--)solve();}
K
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3f#defineintlonglongusingnamespace std;constint N =1e5+10;constint mod =998244353;int nex[N];
string choice[N];int p[N], in[N];bool st[N];char t[N];
set<int> root;int nums;intfind(int x){
if(x != p[x])
p[x]=find(p[x]);return p[x];}voidinit(int x){
for(int i =1; i <= x; i ++){
p[i]= i;
root.insert(i);}}voidmerge(int x,int y){
int px =find(x);int py =find(y);if(px != py){
if(in[px]){
p[px]= py;
root.erase(px);}else{
p[py]= px;
root.erase(py);}}}voiddfs(int u,char answer){
if(st[nex[u]]){
if(answer == t[nex[u]]){
nums ++;}return;}char nex_answer = choice[nex[u]][answer -'A'];
t[nex[u]]= answer;
st[nex[u]]=true;dfs(nex[u], nex_answer);
st[nex[u]]=false;}voidsolve(){
int n; cin >> n;init(n);for(int i =1; i <= n; i ++){
int x; string s;
cin >> x >> s;
choice[i]= s;
nex[i]= x;
in[x]++;merge(x, i);}int ans =1;for(auto x: root){
for(int i =0; i <5; i ++){
t[x]=('A'+ i);
st[x]=true;dfs(x, choice[x][i]);}
ans = nums * ans % mod;
nums =0;}
cout << ans << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;
t =1;// cin >> t;while(t--)solve();}
L
#include<bits/stdc++.h>#defineendl'\n'#definedeb(x) cout << #x <<" = "<< x <<'\n';#defineINF0x3f3f3f3fusingnamespace std;voidsolve(){
int c, d, h, w;
cin >> c >> d >> h >> w;
cout <<3* w * c << endl;}signedmain(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);int t;//t = 1;
cin >> t;while(t--)solve();}