#include #include #define maxn 100000 struct node { int id; long long step; }; int *tu[maxn+1],num[maxn+1],n,p,c,i,j,a,b,head,tail; long long m; node queue[maxn+5]; char mem[maxn/8+5]; bool r(int idx) { return mem[idx/8]&(1<<(idx%8)); } int w(int idx,int v) { mem[idx/8]&=~(1<<(idx%8)); mem[idx/8]|=1<<(idx%8); return v; } inline char get() { static char ch; fread(&ch,1,1,stdin); return ch; } inline long long read() { static long long a; static char ch; a=0; while(ch=get(),!(ch>='0'&&ch<='9')); a=ch-'0'; while(ch=get(),ch>='0'&&ch<='9') a=a*10+ch-'0'; return a; } int main() { freopen("candy.in","rb",stdin); freopen("candy.out","w",stdout); n=read();p=read();c=read(); m=read(); for(i=0;i