提交记录 47534
| 提交时间 |
评测时间 |
| 2026-09-13 00:19:24 |
2026-09-13 00:19:26 |
#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();
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 5.16 us | 8 KB | Accepted | Score: 100 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-09-24 21:36:35 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠