1562: 吓得我赶紧出了个签到题

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:26 解决:166

题目描述

这是一道很有意思的题目接下来将会有4道选择题和一道填空题
答案需要你输出出来


第一行输出所有选择题答案(请按顺序输出,选项均为大写,之间不要有空格)
第二行输出填空题答案


一、选择题

1.ACM的全称是什么()
A.Association for Computing Machinery
B.Air Chief Marshal
C.Authorised Controlled Material
D.Association of Crane Makers


2.ACM区域赛中,金奖为有效队伍数的前百分之()
A.3%
B.5%
C.10%
D.15%


3.下面选项中,最帅的人是谁()
A.同学α
B.同学β
C.同学γ
D.lcl

4.这场周赛简不简单()
A.很简单,感谢出题人


二、填空题
看一眼代码,说出来结果,是一个学计算机同学的基本操作,下面学长给你们一串代码,代码输出的结果即为答案(结果不包含任何空格,请不要多写上空格)
学长相信你可以一眼看出代码输出的结果!!

#include <stdio.h>
#define ll long long
#define N 100000

int sz[N], rev[N], tag[N], sum[N], ch[N][2], fa[N], val[N];
int nana[]={0,39,69,-9,9,8,-3,-5,-75,7};
char edge[N];
int n, m, rt, x;


void push_up(int x){
    sz[x] = sz[ch[x][0]] + sz[ch[x][1]] + 1;
    sum[x] = sum[ch[x][1]] + sum[ch[x][0]] + val[x];
}

void swap(int *p,int *q){
    int temp;
    temp=*p;
    *p=*q;
    *q=temp;
}
void push_down(int x){
    if(rev[x]){
        swap(&ch[x][0], &ch[x][1]);
        if(ch[x][1]) rev[ch[x][1]] ^= 1;
        if(ch[x][0]) rev[ch[x][0]] ^= 1;
        rev[x] = 0;
    }
    if(tag[x]){
        if(ch[x][1]) tag[ch[x][1]] += tag[x], sum[ch[x][1]] += tag[x];
        if(ch[x][0]) tag[ch[x][0]] += tag[x], sum[ch[x][0]] += tag[x];
        tag[x] = 0;
    }
}
void rotate(int x, int k){
    int y = fa[x], z = fa[fa[x]];
    int kind = ch[y][1] == x;
    if(y == k) k = x;
    else ch[z][ch[z][1]==y] = x;
    fa[x] = z; fa[y] = x; fa[ch[x][!kind]] = y;
    ch[y][kind] = ch[x][!kind]; ch[x][!kind] = y;
    push_up(y); push_up(x);
}
void splay(int x, int k){
    while(x != k){
        int y = fa[x], z = fa[fa[x]];
        if(y != k){
            if(((ch[y][1] == x)&&!(ch[z][1] == y))||((ch[z][1] == y)&&!(ch[y][1] == x))) rotate(x, k);

            else rotate(y, k);

        }
        rotate(x, k);
    }
}
int kth(int x, int k){
    push_down(x);
    int r = sz[ch[x][0]]+1;
    if(k == r) return x;
    if(k < r) return kth(ch[x][0], k);
    else return kth(ch[x][1], k-r);
}
void split(int l, int r){
    int x = kth(rt, l), y = kth(rt, r+2);
    splay(x, rt); splay(y, ch[rt][1]);
}
void rever(int l, int r){
    rev[ch[ch[rt][1]][0]] ^= 1;
}
void add(int l, int r, int v){
    tag[ch[ch[rt][1]][0]] += v;
    val[ch[ch[rt][1]][0]] += v;
    push_up(ch[ch[rt][1]][0]);
}
int build(int l, int r, int f){
    if(l > r) return 0;
    if(l == r){
        fa[l] = f;
        sz[l] = 1;
        return l;
    }
    int mid = l + r >> 1;
    ch[mid][0] = build(l, mid-1, mid);
    ch[mid][1] = build(mid+1, r, mid);
    fa[mid] = f;
    push_up(mid);
    return mid;
}
int asksum(int l, int r){
    return sum[ch[ch[rt][1]][0]];
}
int main(){
    rt = build(1, 8+2, 0);
    for(int i = 1; i <= 8; i++){
        add(i, i, nana[i]);
        rever(1, 8);
        if(i>=2) edge[i-1]=(char)asksum(1, 8);
    }
    for(int i=1;i<=nana[9];i++) printf("%c",edge[i]);

    return 0;
}




输入

输出

两行,第一行四个选项(全为大写,无空格),第二行输出填空题答案

提示

(也许你可以运行一下这串代码

来源/分类