DSA problem on Lapindrome getting wrong answer

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int decision(inta,chars,int v);
int main()
{ inta=(int)malloc(128sizeof(int));
for(int i=0;i<128;i++)
a[i]=0;
char
s=(char*)malloc(1001sizeof(char));
scanf("%s",s);
int l=strlen(s)/2;
for(int i=0;i<l;i++)
a[s[i]]++;
if(l%2!=0)
l=l+1;
int t=decision(a,s,l);
if(t==0)
printf(“NO”);
else if(t==1)
printf(“YES”);
free(a);
free(s);
return 0;
}
int decision(int
a,char*s,int v)
{ for(int i=v;i<strlen(s);i++)
a[s[i]]=a[s[i]]-1;
int flag=-1;
for(int i=0;i<128;i++)
if(a[i]!=0)
flag=1;
if(flag==1)
return 0;
else
return 1;
}

Please either format your code or (better!) link to your submission - the forum software has mangled it and it won’t compile! :slight_smile: