编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#151 #1001. A. 神秘谜题 Runtime Error 0 657 ms 21248 K C++ 11 / 1.6 K 物联网61-暴恒磊 2019-06-11 17:37:45
显示原始代码
#include <iostream>
using namespace std;
#define LEN 32
int num1[LEN] = { 0 };
class Tirenode {
public:
    Tirenode *child0, *child1;
    unsigned int num;
    Tirenode() {
        child0 = NULL;
        child1 = NULL;
        num = 0;
        return;
    }
};
class Tiretree {
public:
    Tirenode *head;
    Tiretree() { head = new Tirenode(); }
    void insert(unsigned int e) {
        Tirenode *p = head;
        p->num++;
        int i = 0;
        while (e) {
            char b = e & 0x01;
            e = e >> 1;
            if (b) {
                if (p->child1 == NULL)
                    p->child1 = new Tirenode();
                p = p->child1;
                num1[i]++;
            } else {
                if (p->child0 == NULL)
                    p->child0 = new Tirenode();
                p = p->child0;
            }
            p->num++;
            i++;
        }
    }
};
int main() {
    Tiretree *t = new Tiretree();
    unsigned n;
    cin >> n;
    while (n--) {
        char c;
        cin >> c;
        if (c == '1') {
            Tirenode *p = t->head, *tmp;
            int i = 0;
            while (1) {
                tmp = p->child0;
                p->child0 = p->child1;
                p->child1 = tmp;
                if (p->child0 == NULL) {
                    // if(p->num<1)cout<<"Error:001"<<endl;
                    if (p->child1 == NULL)
                        p->child1 = new Tirenode();
                    p->child1->num = p->num;
                    num1[i++] += p->child1->num;
                    break;
                } else {
                    if (p->child1 == NULL && p->num > p->child0->num) {
                        p->child1 = new Tirenode();
                    }
                    if (p->child1)
                        p->child1->num = p->num - p->child0->num;
                    num1[i++] += p->child1->num - p->child0->num;
                }
                p = p->child0;
            }
        } else {
            Tirenode *p = t->head, *tmp;
            unsigned int element;
            cin >> element;
            t->insert(element);
        }
        unsigned int sum = 0;
        for (int i = LEN - 1; i >= 0; i--) {
            sum = sum << 1;
            sum |= (num1[i] & 0x01);
        }
        cout << sum << endl;
    }
    return 0;
}
子任务 #1
Runtime Error
得分:0
测试点 #1
Runtime Error
得分:0
用时:332 ms
内存:21176 KiB

输入文件(1.in

200000
2 526767110
2 724642759
2 567837900
2 104106873
2 357915481
2 33997211
2 444788944
2 
<1586974 bytes omitted>

答案文件(1.ans

526767110
877985729
361528077
330887284
116239149
82537142
510237286
843295274
453728745
55
<2188330 bytes omitted>

用户输出

526767110
877985729
361528077
330887284
116239149
82537142
510237286
843295274
453728745
559263713
323554710
713540578
520942594
<996757 bytes omitted>

系统信息

Killed: Segmentation fault
测试点 #2
Runtime Error
得分:0
用时:325 ms
内存:21248 KiB

输入文件(2.in

200000
2 515979308
2 512702340
2 684230440
2 488136957
2 598252313
2 283603971
2 349877373
2
<1586842 bytes omitted>

答案文件(2.ans

515979308
5115816
679905408
899606653
372667236
114362215
302756634
473674072
520218589
525
<2192841 bytes omitted>

用户输出

515979308
5115816
679905408
899606653
372667236
114362215
302756634
473674072
520218589
525056845
703148326
764590712
207056035

<996581 bytes omitted>

系统信息

Killed: Segmentation fault