Submission

Status:

P-P--P-P--

Subtask/Task Score:

40/100

Score: 40

User: theem1502

Problemset: จับคู่เลขมงคล

Language: c

Time: 0.002 second

Submitted On: 2025-09-20 14:13:37

#include <stdio.h>
#include <stdlib.h>
int main() {
    int num;
    scanf("%d", &num);


    int luckynumber;
    
    int *thearray = malloc(num * sizeof(int));
    for (int i = 0; i < num; i++) {
        scanf("%d", &thearray[i]);
    }

scanf("%d", &luckynumber);
    for (int i = 0; i < num; i++) {
        for (int j = i+1; j< num; j++)
 {
    if (thearray[j] < thearray[i]) {
        int temp = thearray[i];
        thearray[i] = thearray[j];
        thearray[j] = temp;
    }
 }    }

int firstpointer = 0;
int secondpointer = num-1;
int **destinationarray = malloc(num*sizeof(int*));
for (int i = 0; i < num; i++) {
    destinationarray[i] = malloc(2 * sizeof(int));
}




int temp = 0;
 for (int i = 0; i < num; i++) {
    if (firstpointer >= secondpointer) {
        break;
    }
    int sum = thearray[firstpointer] + thearray[secondpointer];


    if (sum == luckynumber) {
        
        destinationarray[temp][0] = thearray[secondpointer];
        destinationarray[temp][1] = thearray[firstpointer];

        secondpointer -= 1;
        temp++;
        continue;
    }

    else if(sum > luckynumber) {
        secondpointer-=1;
    }
    else {
        firstpointer += 1;
    }
    
 }


if (temp == 0) {
    printf("%s", "NO");
    return 0;
}
 for (int i = 0; i < temp; i++) {
    printf("%d %d\n", destinationarray[i][0], destinationarray[i][1]);
 }
    
    
}