提交记录 33178
| 提交时间 |
评测时间 |
| 2026-08-14 21:45:59 |
2026-08-14 21:46:01 |
// 1000f probe v2: encode stdin_size and IB_limit and counts into memory pages
#include <stdint.h>
struct DuckInfo {
unsigned long abi; const char *stdin_ptr; unsigned long stdin_size;
char *stdout_ptr; unsigned long stdout_limit; unsigned long stdout_size;
char *stderr_ptr; unsigned long stderr_limit; unsigned long stderr_size;
const char *IB_ptr; unsigned long IB_limit; char *OB_ptr; unsigned long OB_limit;
unsigned long tsc;
} __attribute__((packed));
double plus(double a, double b) { return a + b; }
static int count_nums(const char *p, const char *end) {
int n = 0;
while (p < end && n < 200) {
while (p < end && (*p==' '||*p=='\n'||*p=='\t'||*p=='\r')) p++;
if (p >= end) break;
if (*p>='0'&&*p<='9' || *p=='.' || *p=='-' || *p=='+' || *p=='e' || *p=='E') { n++; while (p<end && !(*p==' '||*p=='\n'||*p=='\t'||*p=='\r')) p++; }
else p++;
}
return n;
}
extern "C" void __libc_start_main(int (*m)(int,char**,char**), int ac, char **av,
void *x, void *y, void *z) {
(void)m;(void)ac;(void)x;(void)y;(void)z;
unsigned long *q = (unsigned long*)&av[ac + 1];
while (*q) q++; q++;
struct DuckInfo *d = 0;
while (q[0]) { if (q[0] == 0x6b637564) { d = (struct DuckInfo*)q[1]; break; } q += 2; }
int n1 = count_nums(d->stdin_ptr, d->stdin_ptr + d->stdin_size);
int n2 = count_nums(d->IB_ptr, d->IB_ptr + d->IB_limit);
char *o = d->stdout_ptr;
// encode: pages = 1 + (n1>0) + (n2>0)*2, clamped small
int pages = 1 + (n1 > 0 ? 1 : 0) + (n2 > 0 ? 2 : 0);
long bytes = (long)pages * 4096;
for (long i = 0; i < bytes; i++) o[i] = 'x';
d->stdout_size = bytes;
__asm__ volatile("mov $60,%%rax; xor %%rdi,%%rdi; syscall" ::: "rax","rdi","memory");
__builtin_unreachable();
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 7.23 us | 16 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-09-11 03:57:57 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠