#include <stdio.h>
#include <string.h>
void f(char *origin,char *result, int *change,int n){
int i=0;
int count=0;
char temp[100];
char *iptr;
for(int k=n-1;k>=0;k--,i++){
if(change[k]==0){
memmove(result
+1,result
,strlen(result
)+1); //利用memmove把字串往右移動一格: memmove(str + 1, str, strlen(str) + 1); result[0]=origin[k];
}
else{
result[i]=origin[k];
count++;
}
if(count%2==1){
if(n%2!=0){ //不能用temp[n/2]=result[n/2],因為尾巴少了'\0'
char middle[2] = { result[n/2], '\0' };
}
}
}
}
int main(void) {
// scan data
int m,n;
int change[100][100];
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&change
[i
][j
]); char word[100][100];
//process data
for(i=0;i<m;i++)
f(word[i],word[i+1],change[i],n);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnZvaWQgZihjaGFyICpvcmlnaW4sY2hhciAqcmVzdWx0LCBpbnQgKmNoYW5nZSxpbnQgbil7CglpbnQgaT0wOwoJaW50IGNvdW50PTA7CgljaGFyIHRlbXBbMTAwXTsKCWNoYXIgKmlwdHI7Cglmb3IoaW50IGs9bi0xO2s+PTA7ay0tLGkrKyl7CgkJaWYoY2hhbmdlW2tdPT0wKXsKCQkJbWVtbW92ZShyZXN1bHQrMSxyZXN1bHQsc3RybGVuKHJlc3VsdCkrMSk7ICAvL+WIqeeUqG1lbW1vdmXmiorlrZfkuLLlvoDlj7Pnp7vli5XkuIDmoLzvvJogbWVtbW92ZShzdHIgKyAxLCBzdHIsIHN0cmxlbihzdHIpICsgMSk7CgkJCXJlc3VsdFswXT1vcmlnaW5ba107CgkJfQoJCWVsc2V7CgkJCXJlc3VsdFtpXT1vcmlnaW5ba107CgkJCWNvdW50Kys7CgkJfQoJCWlmKGNvdW50JTI9PTEpewoJCQlzdHJjcHkodGVtcCxyZXN1bHQrbi8yKzEpOwoJCQlpZihuJTIhPTApeyAgICAgICAgICAgICAgICAvL+S4jeiDveeUqHRlbXBbbi8yXT1yZXN1bHRbbi8yXe+8jOWboOeCuuWwvuW3tOWwkeS6hidcMCcKCQkJCWNoYXIgbWlkZGxlWzJdID0geyByZXN1bHRbbi8yXSwgJ1wwJyB9OwogICAgCQkJc3RyY2F0KHRlbXAsIG1pZGRsZSk7CgkJCX0gCgkJCXN0cm5jYXQodGVtcCxyZXN1bHQsbi8yKTsKCQkJc3RyY3B5KHJlc3VsdCx0ZW1wKTsKCQl9Cgl9Cn0KCmludCBtYWluKHZvaWQpIHsKCS8vIHNjYW4gZGF0YQoJaW50IG0sbjsKCXNjYW5mKCIlZCVkIiwmbSwmbik7CglpbnQgY2hhbmdlWzEwMF1bMTAwXTsKCWludCBpLGo7Cglmb3IoaT0wO2k8bTtpKyspCgkJZm9yKGo9MDtqPG47aisrKQoJCQlzY2FuZigiJWQiLCZjaGFuZ2VbaV1bal0pOwoJY2hhciB3b3JkWzEwMF1bMTAwXTsKCXNjYW5mKCIlcyIsd29yZFswXSk7CgkJCgkvL3Byb2Nlc3MgZGF0YQoJZm9yKGk9MDtpPG07aSsrKQoJCWYod29yZFtpXSx3b3JkW2krMV0sY2hhbmdlW2ldLG4pOwoJcHJpbnRmKCIlcyIsd29yZFttXSk7CglyZXR1cm4gMDsKfQo=