Language: C++

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 100000
#define LARGE 2000000000
??
typedef struct {
????char suit;
????int value;
}Card;
??
Card L[MAX/2+2],R[MAX/2+2];
??
void merge(Card*,int,int,int,int);
void mergeSort(Card*,int,int,int);
int partition(Card*,int,int,int);
void quickSort(Card*,int,int,int);
??
void merge(Card A[],int n,int left,int mid,int right){
????int i,j,k;
????int n1=mid-left;
????int n2=right-mid;
????for(i=0;i<n1;i++) L[i]=A[left+i];
????for(i=0;i<n2;i++) R[i]=A[mid+i];
????L[n1].value=R[n2].value=LARGE;
????i=j=0;
????for(k=left;k<right;k++){
????????if(L[i].value<=R[j].value){
????????????A[k]=L[i++];
????????}else{
????????????A[k]=R[j++];
????????}
????}
}
??
void mergeSort(Card A[],int n,int left,int right){
????int mid;
????if(left+1<right){
????????mid=(left+right)/2;
????????mergeSort(A,n,left,mid);
????????mergeSort(A,n,mid,right);
????????merge(A,n,left,mid,right);
????}
}
??
int partition(Card A[],int n,int p,int r){
????int i,j;
????Card t,x;
????x=A[r];
????i=p-1;
????for(j=p;j<r;j++){
????????if(A[j].value<=x.value){
????????????i++;
????????????t=A[i];
????????????A[i]=A[j];
????????????A[j]=t;
????????}
????}
????t=A[i+1];
????A[i+1]=A[r];
????A[r]=t;
????return i+1;
}
??
void quickSort(Card A[],int n,int p,int r){
????int q;
????if(p<r){
????????q=partition(A,n,p,r);
????????quickSort(A,n,p,q-1);
????????quickSort(A,n,q+1,r);
????}
}
??
int main()
{
????int n,i,v;
????Card A[MAX],B[MAX];
????char command[10];
????int stable=1;
??
????scanf("%d",&n);
??
????for(i=0;i<n;i++){
????????scanf("%s %d",command,&v);
????????A[i].suit=B[i].suit=command[0];
????????A[i].value=B[i].value=v;
????}
??
????mergeSort(A,n,0,n);
????quickSort(B,n,0,n-1);
??
????for(i=0;i<n;i++){
????????if(A[i].suit!=B[i].suit) stable=0;
????}
??
????if(stable==1) printf("Stable\n");
????else printf("Not stable\n");
????for(i=0;i<n;i++){
????????printf("%c %d\n",B[i].suit,B[i].value);
????}
??
????return 0;
}

Compiler output:
a.cc:6:1: error: expected unqualified-id before '?' token
    6 | ??
      | ^
a.cc:10:2: error: 'Card' does not name a type
   10 | }Card;
      |  ^~~~
a.cc:11:1: error: expected unqualified-id before '?' token
   11 | ??
      | ^
a.cc:13:1: error: expected unqualified-id before '?' token
   13 | ??
      | ^
a.cc:15:6: error: variable or field 'mergeSort' declared void
   15 | void mergeSort(Card*,int,int,int);
      |      ^~~~~~~~~
a.cc:15:16: error: 'Card' was not declared in this scope
   15 | void mergeSort(Card*,int,int,int);
      |                ^~~~
a.cc:15:21: error: expected primary-expression before ',' token
   15 | void mergeSort(Card*,int,int,int);
      |                     ^
a.cc:15:22: error: expected primary-expression before 'int'
   15 | void mergeSort(Card*,int,int,int);
      |                      ^~~
a.cc:15:26: error: expected primary-expression before 'int'
   15 | void mergeSort(Card*,int,int,int);
      |                          ^~~
a.cc:15:30: error: expected primary-expression before 'int'
   15 | void mergeSort(Card*,int,int,int);
      |                              ^~~
a.cc:16:15: error: 'Card' was not declared in this scope
   16 | int partition(Card*,int,int,int);
      |               ^~~~
a.cc:16:20: error: expected primary-expression before ',' token
   16 | int partition(Card*,int,int,int);
      |                    ^
a.cc:16:21: error: expected primary-expression before 'int'
   16 | int partition(Card*,int,int,int);
      |                     ^~~
a.cc:16:25: error: expected primary-expression before 'int'
   16 | int partition(Card*,int,int,int);
      |                         ^~~
a.cc:16:29: error: expected primary-expression before 'int'
   16 | int partition(Card*,int,int,int);
      |                             ^~~
a.cc:16:32: error: expression list treated as compound expression in initializer [-fpermissive]
   16 | int partition(Card*,int,int,int);
      |                                ^
a.cc:17:6: error: variable or field 'quickSort' declared void
   17 | void quickSort(Card*,int,int,int);
      |      ^~~~~~~~~
a.cc:17:16: error: 'Card' was not declared in this scope
   17 | void quickSort(Card*,int,int,int);
      |                ^~~~
a.cc:17:21: error: expected primary-expression before ',' token
   17 | void quickSort(Card*,int,int,int);
      |                     ^
a.cc:17:22: error: expected primary-expression before 'int'
   17 | void quickSort(Card*,int,int,int);
      |                      ^~~
a.cc:17:26: error: expected primary-expression before 'int'
   17 | void quickSort(Card*,int,int,int);
      |                          ^~~
a.cc:17:30: error: expected primary-expression before 'int'
   17 | void quickSort(Card*,int,int,int);
      |                              ^~~
a.cc:18:1: error: expected unqualified-id before '?' token
   18 | ??
      | ^
a.cc:35:1: error: expected unqualified-id before '?' token
   35 | ??
      | ^
a.cc:45:1: error: expected unqualified-id before '?' token
   45 | ??
      | ^
a.cc:64:1: error: expected unqualified-id before '?' token
   64 | ??
      | ^
a.cc:73:1: error: expected unqualified-id before '?' token
   73 | ??
      | ^