void reverseString(char* s, int sSize) {int i = 0,j = sSize - 1;while(i < j) {char tmp = s[i];s[i] = s[j];s[j] = tmp;i ++, j --;}
}
bool isSubsequence(char* s, char* t) {int i = 0, j = 0;while( s[i] && t[j] ) {if( s[i] == t[j] ) {i++;}j++;}return s[i] == '\0';
}
int cmp(const void * p1, const void * p2) {return (*(int *) p1) - (*(int *) p2);
}
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int save[10010];memcpy(save, nums, sizeof(int) * numsSize); qsort(nums, numsSize, sizeof(int), cmp); int i = 0, j = numsSize - 1;while(i < j) {int sum = nums[i] + nums[j];if(sum > target) {j--;}else if(sum < target) {i++;}else {break;}}int * ret = (int *)malloc(sizeof(int) * 2);if(i > j) {*returnSize = 0;return ret;}for(int a = 0; a < numsSize; ++a) {if(save[a] == nums[i]) {i = a;break;}}for(int b = 0; b < numsSize; ++b) {if(save[b] == nums[j] && b != i) {j = b;break;}}if(j > i) {int t = i;i = j;j = t;}*returnSize = 2;ret[0] = i;ret[1] = j;return ret;
}