提交记录 47533


用户 题目 状态 得分 用时 内存 语言 代码长度
jiegec 1000i. 【传统题】 A+B Problem Accepted 100 5.53 us 8 KB C 2.70 KB
提交时间 评测时间
2026-09-13 00:19:21 2026-09-13 00:19:22
#include <stdint.h>

struct DuckInfo {
    uint64_t abi_version;
    const char *stdin_ptr;
    uint64_t stdin_size;
    char *stdout_ptr;
    uint64_t stdout_limit;
    uint64_t stdout_size;
    char *stderr_ptr;
    uint64_t stderr_limit;
    uint64_t stderr_size;
    const char *IB_ptr;
    uint64_t IB_limit;
    char *OB_ptr;
    uint64_t OB_limit;
    uint64_t tsc_frequency;
} __attribute__((packed));

int main(int argc, char **argv, char **envp) { return 0; }

static const char d100[] =
"00010203040506070809101112131415161718192021222324252627282930313233343536373839"
"40414243444546474849505152535455565758596061626364656667686970717273747576777879"
"8081828384858687888990919293949596979899";

static inline int parse_num(const char **pp) {
    const char *p = *pp;
    int neg = 0;
    if (*p == '-') { neg = 1; p++; }
    int v = 0;
    for (;;) {
        unsigned c = (unsigned char)(*p - '0');
        if (c > 9) break;
        v = v * 10 + (int)c;
        p++;
    }
    *pp = p;
    return neg ? -v : v;
}

int __libc_start_main(int (*mainp)(int, char**, char**), int argc, char **argv,
                      void (*init)(void), void (*fini)(void), void (*rtld_fini)(void)) {
    (void)mainp; (void)argc; (void)init; (void)fini; (void)rtld_fini;
    /* argv[29] == DuckInfo *: auxv AT_DUCK entry (no ASLR, fixed layout) */
    struct DuckInfo *d = (struct DuckInfo *) ((unsigned long *) argv)[29];

    const char *p = d->stdin_ptr;
    int n = parse_num(&p);
    p++;
    char *o = d->stdout_ptr;
    for (int i = 0; i < n; i++) {
        int s = parse_num(&p);
        p++;
        s += parse_num(&p);
        p++;
        if (s < 0) { *o++ = '-'; s = -s; }
        unsigned u = (unsigned) s;
        /* number of decimal digits, then write from the end (no reversal) */
        int len;
        if (u >= 100000000u)      len = (u >= 1000000000u) ? 10 : 9;
        else if (u >= 10000u)     len = (u >= 1000000u) ? ((u >= 10000000u) ? 8 : 7)
                                                        : ((u >= 100000u) ? 6 : 5);
        else if (u >= 100u)       len = (u >= 1000u) ? 4 : 3;
        else                      len = (u >= 10u) ? 2 : 1;
        char *q = o + len;
        o = q;
        while (u >= 100u) {
            unsigned r = u % 100u;
            u /= 100u;
            q -= 2;
            q[0] = d100[2 * r];
            q[1] = d100[2 * r + 1];
        }
        if (u >= 10u) {
            q -= 2;
            q[0] = d100[2 * u];
            q[1] = d100[2 * u + 1];
        } else {
            *--q = (char) ('0' + u);
        }
        *o++ = '\n';
    }
    d->stdout_size = (uint64_t) (o - d->stdout_ptr);
    __asm__ volatile("syscall" : : "a"(60), "D"(0) : "rcx", "r11", "memory");
    __builtin_unreachable();
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #15.53 us8 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-09-24 21:36:24 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠