Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MAX 131072
  3.  
  4. using namespace std;
  5. const int NMAX = 100010;
  6.  
  7. FILE *IN;
  8.  
  9. int N;
  10. int v[NMAX];
  11.  
  12. int sign, pos;
  13. char f[MAX];
  14.  
  15. inline void Read(int &nr){
  16. sign = 0;
  17. nr = 0;
  18. while(f[pos] < '0' || f[pos] > '9'){
  19. if(f[pos] == '-') sign=1;
  20. pos++;
  21. if(pos == MAX)
  22. fread(f, MAX, 1, IN), pos = 0;
  23. }
  24. while(f[pos] >= '0' && f[pos] <= '9'){
  25. nr = 10 * nr + f[pos++] - '0';
  26. if(pos == MAX)
  27. fread(f, MAX, 1, IN), pos = 0;
  28. }
  29. if(sign) nr =- nr;
  30. }
  31.  
  32. int main(){
  33.  
  34. IN = fopen("rmq.in", "r");
  35. freopen("rmq.out", "w", stdout);
  36.  
  37. Read(N);
  38. for(int i = 1; i <= N; i++)
  39. Read(v[i]);
  40.  
  41. int aux;
  42. int imparPos = 1;
  43. for(int i = 1; i <= N; i++){
  44. for(int j = i + 1; j <= N; j++){
  45. if(v[j] % 2 == 1 && v[i] % 2 != 1){
  46. aux = v[i];
  47. v[i] = v[j];
  48. v[j] = aux;
  49. imparPos = i;
  50. }
  51. }
  52. }
  53.  
  54. for(int f = imparPos; f > 1; f--){
  55. for(int i = 1; i < f; i++){
  56. if(v[i] > v[i + 1]){
  57. aux = v[i];
  58. v[i] = v[i + 1];
  59. v[i + 1] = aux;
  60. }
  61. }
  62. }
  63.  
  64. for(int f = N; f > imparPos; f--){
  65. for(int i = imparPos + 1; i < f; i++){
  66. if(v[i] > v[i + 1]){
  67. aux = v[i];
  68. v[i] = v[i + 1];
  69. v[i + 1] = aux;
  70. }
  71. }
  72. }
  73.  
  74. for(int i = 1; i <= N; i++)
  75. printf("%d ", v[i]);
  76.  
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement