#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {int bla,ist_markiert;} E;
enum {X=20};
E a[]={{0,0},{1,0},{2,0},{3,0},{4,0},{5,1},{6,1},{7,0},{8,0},{9,0},{10,1},{11,0},{12,0},{13,1},{14,0},{15,0},{16,0},{17,0},{18,0},{19,0}};
int main()
{
for(int i=0;i<X;++i) printf("[%d][%c]\n",a[i].bla,a[i].ist_markiert?'+':'-');
{
int w=0; for(int i=0;i<X;++i) if(a[i].ist_markiert) break; else ++w;
E* b=malloc(X*sizeof*b);
memcpy(b,a,X*sizeof*b);
memmove(a,a+w,(X-w)*sizeof*b);
memcpy(a+(X-w),a+X-w-w,w*sizeof*b);
for(int i=0,j=0;i<X-w;++i)
if(!a[i].ist_markiert)
{
while(b[j].ist_markiert) ++j;
a[i]=b[j++];
}
free(b);
}
puts("=============");
for(int i=0;i<X;++i) printf("[%d][%c]\n",a[i].bla,a[i].ist_markiert?'+':'-');
return 0;
}