// Arch probe for wc2017b2: encode sizeof facts into per-testcase MEMORY.
// No DuckInfo needed. solve() is called by tasklib; we memset a static buffer
// to dirty a number of 4KB pages, then read "Memory (KiB)" on the submission page.
#include <string.h>
static char big[520*1024*1024] __attribute__((aligned(4096)));
void solve(int n, int q, char *s1, char *s2, int *q_x, int *q_y, int *q_len, unsigned *ans){
(void)n; (void)q; (void)s1; (void)s2; (void)q_x; (void)q_y; (void)q_len;
unsigned long ul = sizeof(unsigned long);
unsigned long vp = sizeof(void*);
unsigned long pages;
// 64-bit: ul=8,vp=8 -> 100000 pages (~410 MB)
// 32-bit: ul=4,vp=4 -> 25000 pages (~102 MB)
if (ul == 8 && vp == 8) pages = 100000;
else if (ul == 4 && vp == 4) pages = 25000;
else pages = 15000; // unexpected
memset(big, 1, pages * 4096);
for (int i = 0; i < q; i++) ans[i] = 0;
}