2025-01-20 21:25:33 +08:00
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
#define MAX 10
|
|
|
|
|
|
|
|
|
|
// <20>x<EFBFBD>s<EFBFBD>C<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c
|
|
|
|
|
struct Term {
|
|
|
|
|
int coefficient; // <20>Y<EFBFBD><59>
|
|
|
|
|
int exponent; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F>p<EFBFBD><70><EFBFBD>i<EFBFBD><EFBFBD><E0AABA>
|
|
|
|
|
void count_root(int arrR[],int arrL[],int ans[],int countF,int countL ,int *len_ans){
|
|
|
|
|
int i , j ,k=0;
|
|
|
|
|
for(i=0;i<countF;i++){
|
|
|
|
|
for(j=0;j<countL;j++){
|
|
|
|
|
if((arrL[j]%arrR[i])==0){
|
|
|
|
|
ans[k++] = arrL[j]/arrR[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}*len_ans =k;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>N<EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD>Y<EFBFBD>ƻP<C6BB>`<60>ƪ<EFBFBD><C6AA>]<5D>ƥ[<5B>J<EFBFBD>t<EFBFBD><74>
|
|
|
|
|
void plus_root_negative(int arr[],int *len){
|
|
|
|
|
int i , j=0;
|
|
|
|
|
for(i=0;i<*len;i++){
|
|
|
|
|
arr[*len+j]=-(arr[i]);
|
|
|
|
|
j++;
|
|
|
|
|
}*len=*len+j;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD>Y<EFBFBD>ƻP<C6BB>`<60>ƪ<EFBFBD><C6AA>]<5D><>
|
|
|
|
|
void find_factor(int P[], int facF[], int facL[], int len, int *count1, int *count2) {
|
|
|
|
|
int i, j = 0;
|
|
|
|
|
for (i = 1; i <= abs(ceil(P[2] / 2)); i++) {
|
|
|
|
|
if (abs(P[2]) % i == 0) {
|
|
|
|
|
facF[j++] = i;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
facF[j++] = fabs(P[2]); // <20>]<5D>t P[2] <20><><EFBFBD><EFBFBD>
|
|
|
|
|
*count1 = j; // <20>]<5D>w<EFBFBD><77><EFBFBD>쪺<EFBFBD>]<5D>ƭӼ<C6AD>
|
|
|
|
|
|
|
|
|
|
j = 0;
|
|
|
|
|
for (i = 1 ; i <= abs(ceil(P[len-1] / 2)); i++) {
|
|
|
|
|
if (abs(P[len-1]) % i == 0) {
|
|
|
|
|
facL[j++] = i;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
facL[j++] = fabs(P[len-1]); // <20>]<5D>t P[len] <20><><EFBFBD><EFBFBD>
|
|
|
|
|
*count2 = j; // <20>]<5D>w<EFBFBD><77><EFBFBD>쪺<EFBFBD>]<5D>ƭӼ<C6AD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ڥN<DAA5>J<EFBFBD><4A><EFBFBD>{<7B><>
|
|
|
|
|
int evaluate_polynomial(int A[], int len, int x) {
|
|
|
|
|
int result = 0;
|
|
|
|
|
int i;
|
|
|
|
|
for (i = 2; i < len; i += 2) {
|
|
|
|
|
result += A[i] * pow(x, A[i-1]);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ڥN<DAA5>J<EFBFBD><4A><EFBFBD>{<7B><> <20>D<EFBFBD><44><EFBFBD><EFBFBD>
|
|
|
|
|
void Substitute(int len_root, int arr[], int ans[], int A[], int len_A, int *len_ans) {
|
|
|
|
|
int i, j = 0, result;
|
|
|
|
|
for (i = 0; i < len_root; i++) {
|
|
|
|
|
result = evaluate_polynomial(A, len_A, arr[i]);
|
|
|
|
|
// printf("x = %d, result = %d\n", arr[i], result);
|
|
|
|
|
if (result == 0) {
|
|
|
|
|
ans[j++] = arr[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*len_ans = j;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƪ<EFBFBD><C6AA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void remove_duplicates(int A[], int len, int new_A[], int *new_len) {
|
|
|
|
|
int i, j, k;
|
|
|
|
|
int is_duplicate;
|
|
|
|
|
|
|
|
|
|
*new_len = 0; // <20><><EFBFBD>l<EFBFBD>Ʒs<C6B7><73><EFBFBD>}<7D>C<EFBFBD><43><EFBFBD><EFBFBD>0
|
|
|
|
|
|
|
|
|
|
// <20>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>}<7D>C
|
|
|
|
|
for (i = 0; i < len; i++) {
|
|
|
|
|
is_duplicate = 0; // <20><><EFBFBD>]<5D><><EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20>ˬd<CBAC>O<EFBFBD>_<EFBFBD>b<EFBFBD><62><EFBFBD>G<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD>X<EFBFBD>{<7B>L
|
|
|
|
|
for (j = 0; j < *new_len; j++) {
|
|
|
|
|
if (A[i] == new_A[j]) {
|
|
|
|
|
is_duplicate = 1; // <20>p<EFBFBD>G<EFBFBD>o<EFBFBD>{<7B><><EFBFBD>ơA<C6A1>аO<D0B0><4F>1
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20>p<EFBFBD>G<EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD>ơA<C6A1>N<EFBFBD><4E><EFBFBD>[<5B>J<EFBFBD><4A><EFBFBD>G<EFBFBD>}<7D>C
|
|
|
|
|
if (!is_duplicate) {
|
|
|
|
|
new_A[*new_len] = A[i];
|
|
|
|
|
(*new_len)++; // <20><><EFBFBD>s<EFBFBD><73><EFBFBD>G<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܤ<EFBFBD><DCA4>{<7B><>
|
|
|
|
|
void output(int *A,int len){
|
|
|
|
|
int i ,j,flag_Max=0,flag_x=0, flag_const=0 ;
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>{<7B><>p(x)= ");
|
|
|
|
|
//A[i]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A[i+1]<5D><><EFBFBD>Y<EFBFBD><59>
|
|
|
|
|
//i<>q1<71>}<7D>l<EFBFBD><6C> <20>@<40><>Ū<EFBFBD><C5AA><EFBFBD>@<40>ӫ<EFBFBD><D3AB>ƻP<C6BB>Y<EFBFBD><59>
|
|
|
|
|
//len<65><6E>A[]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//flag_Max <20><><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58>
|
|
|
|
|
//flag_x <20><>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58>
|
|
|
|
|
//flag_const <20><><EFBFBD>`<60>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>X<EFBFBD><58>
|
|
|
|
|
|
|
|
|
|
for(i=1;i<len;i++){
|
|
|
|
|
if(A[i]==1){ //<2F>Y<EFBFBD><59><EFBFBD>ƶ<EFBFBD>=1 IJ<>o<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58>
|
|
|
|
|
flag_x=1;
|
|
|
|
|
}else if(A[i]==0){ //<2F>Y<EFBFBD><59><EFBFBD>ƶ<EFBFBD>=0 IJ<>o<EFBFBD>`<60>ƶ<EFBFBD><C6B6>X<EFBFBD><58>
|
|
|
|
|
flag_const=1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(flag_Max==0){ //<2F>Ĥ@<40><>
|
|
|
|
|
if( A[i]>1 && A[i+1]!=1){ //<2F><><EFBFBD>Ƥj<C6A4><6A>1 <20>Y<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
printf("%dx^%d",A[i+1],A[i]);
|
|
|
|
|
}else if(A[i]>1 && A[i+1]==1){
|
|
|
|
|
printf("x^%d",A[i]); //<2F><><EFBFBD>Ƥj<C6A4><6A>1 <20>Y<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>1
|
|
|
|
|
}else if(A[i]==1 && A[i+1]!=1){ //<2F><><EFBFBD><EFBFBD>=1 <20>Y<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
printf("%dx",A[i+1]);
|
|
|
|
|
}else if(A[i]==0 && A[i+1]!=1){ //<2F><><EFBFBD><EFBFBD>=0 <20>Y<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
printf("%d",A[i+1]);
|
|
|
|
|
}else if(A[i]==1 && A[i+1]==1){ //<2F><><EFBFBD><EFBFBD>=1 <20>Y<EFBFBD><59>=1
|
|
|
|
|
printf("x");
|
|
|
|
|
}else if(A[i]==1 && A[i+1]==-1){ //<2F><><EFBFBD><EFBFBD>=1 <20>Y<EFBFBD><59>=-1
|
|
|
|
|
printf("-x");
|
|
|
|
|
}flag_Max = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58>=1
|
|
|
|
|
}else if(flag_x == 1 && flag_const==0){// x<>@<40><><EFBFBD><EFBFBD>
|
|
|
|
|
if(A[i+1]>0){ // x<>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if(A[i+1]==1){
|
|
|
|
|
printf("+x",A[i+1]);
|
|
|
|
|
}else{
|
|
|
|
|
printf("+%dx",A[i+1]);
|
|
|
|
|
}
|
|
|
|
|
}else if(A[i+1]<0){ //x<>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t
|
|
|
|
|
if(A[i+1]==-1){
|
|
|
|
|
printf("-x",A[i+1]);
|
|
|
|
|
}else{
|
|
|
|
|
printf("%dx",A[i+1]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else if(flag_const==1){ // <20>`<60>ƶ<EFBFBD>
|
|
|
|
|
if(A[i+1]>0){ //<2F>`<60>ƶ<EFBFBD>>0
|
|
|
|
|
printf("+%d",A[i+1]);
|
|
|
|
|
}else if(A[i+1]<0) { //<2F>`<60>ƶ<EFBFBD><0
|
|
|
|
|
printf("%d",A[i+1]);
|
|
|
|
|
}
|
|
|
|
|
}else if(flag_Max==1 && flag_x==0 && flag_const==0) { //<2F>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if(A[i+1]>0){ //<2F>Y<EFBFBD><59>>1
|
|
|
|
|
if(A[i+1]==1){ //<2F>Y<EFBFBD><59>=1
|
|
|
|
|
printf("x^%d",A[i]);
|
|
|
|
|
}else{ //<2F>Y<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
printf("+%dx^%d",A[i+1],A[i]);
|
|
|
|
|
}
|
|
|
|
|
}else if(A[i+1]<0){ //<2F>Y<EFBFBD><59><1
|
|
|
|
|
if(A[i+1]==-1){ //<2F>Y<EFBFBD><59>=-1
|
|
|
|
|
printf("-x^%d",A[i]);
|
|
|
|
|
}else{ //<2F>Y<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
printf("%dx^%d",A[i+1],A[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}i++;
|
|
|
|
|
}
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int i,j, len, countF, countL, len_root, len_ans ,len_new ;
|
|
|
|
|
char input[100];
|
|
|
|
|
struct Term terms[MAX];
|
|
|
|
|
int term_count = 0;
|
|
|
|
|
printf("\n*** <20>Ѧh<D1A6><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD> ***\n");
|
|
|
|
|
|
|
|
|
|
// 1. Ū<><C5AA><EFBFBD><EFBFBD><EFBFBD>J
|
|
|
|
|
printf("\n<EFBFBD>п<EFBFBD><EFBFBD>J<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>G ");
|
|
|
|
|
fgets(input, sizeof(input), stdin);
|
|
|
|
|
input[strcspn(input, "\n")] = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// 2. <20>B<EFBFBD>z<EFBFBD>C<EFBFBD>@<40><>
|
|
|
|
|
char *ptr = input;
|
|
|
|
|
while (*ptr && term_count < MAX) {
|
|
|
|
|
int coef = 0, exp = 0;
|
|
|
|
|
int is_negative = 0;
|
|
|
|
|
|
|
|
|
|
// <20>ˬd<CBAC>t<EFBFBD><74>
|
|
|
|
|
if (*ptr == '-') {
|
|
|
|
|
is_negative = 1;
|
|
|
|
|
ptr++;
|
|
|
|
|
} else if (*ptr == '+') {
|
|
|
|
|
ptr++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>L<EFBFBD>ťզr<D5A6><72>
|
|
|
|
|
while (isspace(*ptr)) ptr++;
|
|
|
|
|
|
|
|
|
|
// 3. <20>ѪR<D1AA>C<EFBFBD>@<40><>
|
|
|
|
|
if (sscanf(ptr, "%dx^%d", &coef, &exp) == 2) {
|
|
|
|
|
// <20><><EFBFBD>㪺 ax^b <20>Φ<EFBFBD>
|
|
|
|
|
ptr = strchr(ptr, '^') + 1;
|
|
|
|
|
} else if (sscanf(ptr, "%dx", &coef) == 1) {
|
|
|
|
|
// ax <20>Φ<EFBFBD><CEA6>A<EFBFBD><41><EFBFBD>Ƭ<EFBFBD>1
|
|
|
|
|
exp = 1;
|
|
|
|
|
ptr = strchr(ptr, 'x') + 1;
|
|
|
|
|
} else if (sscanf(ptr, "x^%d", &exp) == 1) {
|
|
|
|
|
// x^b <20>Φ<EFBFBD><CEA6>A<EFBFBD>Y<EFBFBD>Ƭ<EFBFBD>1
|
|
|
|
|
coef = 1;
|
|
|
|
|
ptr = strchr(ptr, '^') + 1;
|
|
|
|
|
} else if (strncmp(ptr, "x", 1) == 0) {
|
|
|
|
|
// <20><><EFBFBD>W<EFBFBD><57> x<>A<EFBFBD>Y<EFBFBD>Ƭ<EFBFBD>1<EFBFBD>A<EFBFBD><41><EFBFBD>Ƭ<EFBFBD>1
|
|
|
|
|
coef = 1;
|
|
|
|
|
exp = 1;
|
|
|
|
|
ptr++;
|
|
|
|
|
} else {
|
|
|
|
|
// <20><><EFBFBD>]<5D>O<EFBFBD>`<60>ƶ<EFBFBD>
|
|
|
|
|
sscanf(ptr, "%d", &coef);
|
|
|
|
|
exp = 0;
|
|
|
|
|
while (isdigit(*ptr)) ptr++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 4. <20>B<EFBFBD>z<EFBFBD>t<EFBFBD><74>
|
|
|
|
|
if (is_negative) {
|
|
|
|
|
coef = -coef;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 5. <20>x<EFBFBD>s<EFBFBD><73><EFBFBD>G
|
|
|
|
|
terms[term_count].coefficient = coef;
|
|
|
|
|
terms[term_count].exponent = exp;
|
|
|
|
|
term_count++;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>X<EFBFBD><58><EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD><48><EFBFBD>]<5D>Ω<EFBFBD><CEA9>ոա^
|
|
|
|
|
// printf("<22><> %d: <20>Y<EFBFBD><59> = %d, <20><><EFBFBD><EFBFBD> = %d\n", term_count, coef, exp);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ʨ<EFBFBD><CAA8>U<EFBFBD>@<40><> '+' <20><> '-' <20>Ÿ<EFBFBD>
|
|
|
|
|
while (*ptr && *ptr != '+' && *ptr != '-') ptr++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// int *A = (int*)malloc(((term_count*2)+1) * sizeof(int)) ;
|
|
|
|
|
len = ((term_count*2)+1);
|
|
|
|
|
int A[len];
|
|
|
|
|
|
|
|
|
|
// printf("term_count=%d\n",term_count);
|
|
|
|
|
// printf("((term_count*2)+1)=%d\n",((term_count*2)+1));
|
|
|
|
|
// printf("sizeof(A)=%d\n",sizeof(A));
|
|
|
|
|
|
|
|
|
|
A[0]=term_count;
|
|
|
|
|
for (i = 1 , j=0 ; i < term_count*2 ; i++ , j++ ){
|
|
|
|
|
A[i]= terms[j].exponent;
|
|
|
|
|
A[i+1]= terms[j].coefficient;
|
|
|
|
|
// printf("A[%d]=%d\n",i,terms[j].exponent);
|
|
|
|
|
// printf("A[%d]=%d\n",i+1,terms[j].coefficient);
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// printf("A[]= ");
|
|
|
|
|
// for (i = 0; i < len; i++) {
|
|
|
|
|
// printf(" %d ",A[i]);
|
|
|
|
|
// }
|
|
|
|
|
// printf("\n");
|
|
|
|
|
|
|
|
|
|
// 1x^3-2x^2-1x^1+2x^0
|
|
|
|
|
// 1x^5-1x^3-1x^2-1x^1+1x^0
|
2025-01-20 21:30:53 +08:00
|
|
|
|
// 1x^2-100x^0 1x^1+100x^0
|
2025-01-20 21:25:33 +08:00
|
|
|
|
// 3x^4+9x^3-198x^2+156x^1+360x^0
|
2025-01-20 21:30:53 +08:00
|
|
|
|
// 1x^3+1x^0
|
2025-01-20 21:25:33 +08:00
|
|
|
|
|
|
|
|
|
int facF[30], facL[30], root[60], ans[60] ,new_ans[8];
|
|
|
|
|
find_factor(A, facF, facL, len, &countF, &countL);
|
|
|
|
|
|
|
|
|
|
// printf("<22>̰<EFBFBD><CCB0><EFBFBD><EFBFBD>趵<EFBFBD>]<5D>Ƭ<EFBFBD>: ");
|
|
|
|
|
// for (i = 0; i < countF; i++) {
|
|
|
|
|
// printf("%d ", facF[i]);
|
|
|
|
|
// }
|
|
|
|
|
// printf("\n<>`<60>ƶ<EFBFBD><C6B6>]<5D>Ƭ<EFBFBD>: ");
|
|
|
|
|
// for (i = 0; i < countL; i++) {
|
|
|
|
|
// printf("%d ", facL[i]);
|
|
|
|
|
// }
|
|
|
|
|
// printf("\n");
|
|
|
|
|
|
|
|
|
|
count_root(facF, facL, root, countF, countL, &len_root);
|
|
|
|
|
plus_root_negative(root, &len_root);
|
|
|
|
|
|
|
|
|
|
// printf("<22>i<EFBFBD><EFBFBD>ڡG\n");
|
|
|
|
|
// for (i = 0; i < len_root; i++) {
|
|
|
|
|
// printf("root[%d] = %d\n", i, root[i]);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>X<EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD>
|
|
|
|
|
output(A,len);
|
|
|
|
|
// <20>p<EFBFBD><70><EFBFBD>i<EFBFBD><EFBFBD><E0AABA>
|
|
|
|
|
Substitute(len_root, root, ans, A, len, &len_ans);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD>
|
|
|
|
|
remove_duplicates(ans,len_ans,new_ans,&len_new);
|
|
|
|
|
|
|
|
|
|
if(len_new==0){
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>Ʈڤ<EFBFBD><EFBFBD>s<EFBFBD>b");
|
|
|
|
|
return 1 ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(len_new>0){
|
|
|
|
|
printf("\n<EFBFBD>ѱo<EFBFBD><EFBFBD><EFBFBD>Ʈڬ<EFBFBD><EFBFBD>G");
|
|
|
|
|
for (i = 0; i < len_new; i++) {
|
|
|
|
|
if(i<len_new-1) {
|
|
|
|
|
printf("%d<>B",new_ans[i]);
|
|
|
|
|
}else if(i==len_new-1) {
|
|
|
|
|
printf("%d", new_ans[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|