#include <stdio.h>
#include <stdint.h>
static uint8_t data[256];
static int index;
void init_random()
{
index = 0;
for (int i = 0; i < 256; ++i)
data[i] = i;
// bad choice, use fisher-yates for example
for (int i = 0; i < 10000; ++i)
{
uint8_t t = data[i1];
data[i1] = data[i2];
data[i2] = t;
}
}
uint8_t extract()
{
return data[index++];
}
int main(void) {
init_random();
for (int i = 0; i < 100; ++i)
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KICAgIHN0YXRpYyB1aW50OF90IGRhdGFbMjU2XTsKICAgIHN0YXRpYyBpbnQgaW5kZXg7CiAgICAKICAgIHZvaWQgaW5pdF9yYW5kb20oKQogICAgewogICAgICBzcmFuZChOVUxMKTsKCiAgICAgIGluZGV4ID0gMDsKICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7ICsraSkKICAgICAgICBkYXRhW2ldID0gaTsKICAgICAKICAgICAgLy8gYmFkIGNob2ljZSwgdXNlIGZpc2hlci15YXRlcyBmb3IgZXhhbXBsZQogICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyArK2kpCiAgICAgIHsKICAgICAgICBpbnQgaTEgPSByYW5kKCklMjU2LCBpMiA9IHJhbmQoKSUyNTY7CiAgICAgICAgdWludDhfdCB0ID0gZGF0YVtpMV07CiAgICAgICAgZGF0YVtpMV0gPSBkYXRhW2kyXTsKICAgICAgICBkYXRhW2kyXSA9IHQ7CiAgICAgIH0KICAgIH0KICAgIAogICAgdWludDhfdCBleHRyYWN0KCkKICAgIHsKICAgICAgcmV0dXJuIGRhdGFbaW5kZXgrK107CiAgICB9CgoKaW50IG1haW4odm9pZCkgewoJaW5pdF9yYW5kb20oKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyArK2kpCgkgIHByaW50ZigiJWRcbiIsIGV4dHJhY3QoKSk7Cn0K