#include <iostream>
using namespace std;
// int priority(int x){
// if ( x > 0)
// return 1 ;
// else
// return 0;
// }
// bool compare(int x , int y ) {
// if ( priority(x) == priority(y)){
// if ( priority(x) == 1)
// return x < y ;
// else
// return x > y ;
// }
// else
// return ( priority(x) == priority(y));
// }
// các số chia hết cho 3 đứng đầu,
// rồi đến các số chia cho 3 dư 2 và cuối cùng là các số chia 3 dư 1
int priority(int x){
if ( x % 3 == 0)
return 2 ;
else if ( x % 3 == 2)
return 1;
else
return 0;
}
bool compare(int x , int y ) {
return ( priority(x) > priority(y));
}
void selectionSort( int a[] , int n ) {
for ( int i = 0;i < n - 1;i++){
int minIndex = i ;
for ( int j = i + 1 ; j < n ; j++)
if (compare(a[j] , a[minIndex])) {
minIndex = j ;
}
swap(a[i] , a[minIndex]);
}
}
int main() {
// your code goes here
int arr[] = { 5 , 4, 3 , 1 ,2 , 7,8,9,12,14,15 } ;
selectionSort(arr,11);
for ( int i = 0 ; i < 11 ; i++){
cout << arr[i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gaW50IHByaW9yaXR5KGludCB4KXsKLy8gCWlmICggeCA+IDApCi8vIAkJcmV0dXJuIDEgOwovLyAJZWxzZQovLyAJCXJldHVybiAwOwovLyB9CgovLyBib29sIGNvbXBhcmUoaW50IHggLCBpbnQgeSApIHsKLy8gCWlmICggcHJpb3JpdHkoeCkgPT0gcHJpb3JpdHkoeSkpewovLyAJCWlmICggcHJpb3JpdHkoeCkgPT0gMSkKLy8gCQkJcmV0dXJuIHggPCB5IDsKLy8gCQllbHNlCi8vIAkJCXJldHVybiB4ID4geSA7Ci8vIAl9Ci8vIAllbHNlCi8vIAkJcmV0dXJuICggcHJpb3JpdHkoeCkgPT0gcHJpb3JpdHkoeSkpOwovLyB9CgovLyBjw6FjIHPhu5EgY2hpYSBo4bq/dCBjaG8gMyDEkeG7qW5nIMSR4bqndSwgCi8vIHLhu5NpIMSR4bq/biBjw6FjIHPhu5EgY2hpYSBjaG8gMyBkxrAgMiB2w6AgY3Xhu5FpIGPDuW5nIGzDoCBjw6FjIHPhu5EgY2hpYSAzIGTGsCAxCmludCBwcmlvcml0eShpbnQgeCl7CglpZiAoIHggJSAzID09IDApCgkJcmV0dXJuIDIgOwoJZWxzZSBpZiAoIHggJSAzID09IDIpCgkJcmV0dXJuIDE7CgllbHNlCgkJcmV0dXJuIDA7Cn0KCmJvb2wgY29tcGFyZShpbnQgeCAsIGludCB5ICkgewoJcmV0dXJuICggcHJpb3JpdHkoeCkgPiBwcmlvcml0eSh5KSk7Cn0KCnZvaWQgc2VsZWN0aW9uU29ydCggaW50IGFbXSAsIGludCBuICkgewoJZm9yICggaW50IGkgPSAwO2kgPCBuIC0gMTtpKyspewoJCWludCBtaW5JbmRleCA9IGkgOwoJCWZvciAoIGludCBqID0gaSArIDEgOyBqIDwgbiA7IGorKykKCQkJaWYgKGNvbXBhcmUoYVtqXSAsIGFbbWluSW5kZXhdKSkgewoJCQkJbWluSW5kZXggPSBqIDsKCQkJfQoJCXN3YXAoYVtpXSAsIGFbbWluSW5kZXhdKTsKCX0KfQoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IGFycltdID0geyA1ICwgNCwgMyAsIDEgLDIgLCA3LDgsOSwxMiwxNCwxNSB9IDsKCXNlbGVjdGlvblNvcnQoYXJyLDExKTsKCWZvciAoIGludCBpID0gMCA7IGkgPCAxMSA7IGkrKyl7CgkJY291dCA8PCBhcnJbaV08PCIgIjsKCX0KCXJldHVybiAwOwp9