#include <iostream>void judo1516(int n){ int *num = new int[n]; for(int i = 0;i<n;i++){ std::cin>>num[i]; } int *odd = new int[n]; int *even = new int[n]; int neven = 0; int nodd = 0; for(int i = 0;i<n;i++){ if(num[i]&1){ odd[nodd] = num[i]; nodd++; }else{ even[neven] = num[i]; neven++; } } for(int i = 0;i<nodd-1;i++){ std::cout<<odd[i]<<" "; } std::cout<<odd[nodd-1]; if(neven>0){ std::cout<<" "; for(int i = 0;i<neven-1;i++){ std::cout<<even[i]<<" "; } std::cout<<even[neven-1]; }} int main(){ int n = 0; while(std::cin>>n){ judo1516(n); } return 0;} /************************************************************** Problem: 1516 User: KES Language: C++ Result: Accepted Time:110 ms Memory:2696 kb****************************************************************/
#include <iostream>void judo1516(int n){ int *num = new int[n]; for(int i = 0;i<n;i++){ std::cin>>num[i]; } for(int i = 1;i<n;i++){ if(num[i]&1){ int j = i; while(j>0 && !(num[j-1]&1)){ num[j] = num[j-1]^num[j]; num[j-1] = num[j]^num[j-1]; num[j] = num[j-1]^num[j]; j--; } } } for(int i = 0;i<n-1;i++){ std::cout<<num[i]<<" "; } std::cout<<num[n-1]; } int main(){ int n = 0; while(std::cin>>n){ judo1516(n); } return 0;}/************************************************************** Problem: 1516 User: KES Language: C++ Result: Time Limit Exceed****************************************************************/