makrusak

qsort_pos

Dec 9th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <algorithm>
  5. #include <vector>
  6. #include <string>
  7. #include <string.h>
  8. #include <queue>
  9. #include <stack>
  10. #include <deque>
  11. #include <map>
  12. #include <set>
  13. #include <cmath>
  14. #include <sstream>
  15. #include <ctime>
  16.  
  17. #define pb push_back
  18. #define mp make_pair
  19. #define PI 3.1415926535897932384626433832795
  20. #define ALL(x) x.begin(), x.end()
  21. #define F first
  22. #define S second
  23. #define m0(x) memset(x,0,sizeof(x))
  24. #define m1(x) memset(x,-1,sizeof(x))
  25. #define pw(x) (1ull<<(x))
  26.  
  27. using namespace std;
  28. typedef long long ll;
  29. typedef unsigned long long ull;
  30. typedef long double ld;
  31. typedef pair<int,int> pii;
  32. const int INF = 2147483647;
  33. const ll LLINF = 9223372036854775807LL;
  34.  
  35. vector<double> a;
  36. vector<double> positive;
  37.  
  38. int main() {
  39.   //input
  40.   double q;
  41.   while (cin >> q) {
  42.     a.push_back(q);
  43.   }
  44.   //select positive and sort
  45.   for (size_t i = 0; i < a.size(); i++) {
  46.     if (a[i] > 0) positive.push_back(a[i]);
  47.   }
  48.   sort(positive.begin(), positive.end());
  49.  
  50.   //output
  51.   int current = 0;
  52.   for (size_t i = 0; i < a.size(); i++) {
  53.     if (a[i] > 0) a[i] = positive[current++];
  54.   }
  55.   for (size_t i = 0; i < a.size(); i++) cout << a[i] << " ";
  56.  
  57.   return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment