Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- class My_pair
- {
- public:
- unsigned int first;
- unsigned int second;
- void operator=(const My_pair &x)
- {
- first = x.first;
- second = x.second;
- }
- };
- unsigned int nietrywialny(unsigned int number)
- {
- unsigned int dzielnik=1;
- if(number % 2 == 0)
- {
- return number/2;
- }
- else
- {
- for(unsigned int i=(number/2); i>=2; --i)
- {
- if(number%i==0)
- {
- return i;
- }
- }
- }
- return dzielnik;
- }
- bool operator <( const My_pair &x, const My_pair &y )
- {
- if(x.first != y.first)
- {
- return x.first < y.first;
- }
- else
- {
- if(nietrywialny(x.second) > nietrywialny(y.second))
- return true;
- else
- return false;
- }
- }
- void InsertSort(My_pair *all, unsigned int n ){
- My_pair swapp;
- int j;
- for(unsigned int i=1;i<(n/2) ;++i){
- swapp = all[i];
- for (j=i-1;(j>=0)&&(swapp<all[j]); --j)
- all[j+1]=all[j];
- all[j+1]=swapp ;
- }
- }
- void dolina_dino()
- {
- unsigned int n, d;
- scanf("%u", &n);
- for(unsigned int i=0; i<n; ++i)
- {
- My_pair *all;
- scanf("%u",&d);
- all = new My_pair [d/2];
- for(unsigned int j=0; j<d/2;++j)
- {
- scanf("%u",&all[j].first);
- scanf("%u",&all[j].second);
- }
- InsertSort(all,d);
- for(unsigned int i=0;i<d/2;++i)
- {
- printf("%u ",all[i].first);
- printf("%u ",all[i].second);
- }
- delete [] all;
- }
- }
- int main()
- {
- dolina_dino();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement