runnig

[sotong] R3 Card Order

Mar 29th, 2013
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. /* Card Order */
  2. #include "stdafx.h"
  3. #include "stdio.h"
  4. #include <iostream>
  5. #include <fstream>
  6. #include <vector>
  7. #include <algorithm>
  8. #include <functional>
  9. #include <queue>
  10. #include <map>
  11. #include <set>
  12. #include <deque>
  13.  
  14. using namespace std;
  15.  
  16. class algorithm
  17. {
  18. public:
  19.     void solution(char *input, char *output);
  20. };
  21.  
  22. typedef  std::pair<int, int> ii;
  23.  
  24. void algorithm::solution(char *input, char *output)
  25. {
  26.     ifstream infile(input);
  27.     ofstream outfile;
  28.     outfile.open(output);
  29.  
  30.     size_t T;
  31.     infile >> T;
  32.  
  33.     for (size_t t = 0; t < T; ++t)
  34.     {
  35.         size_t N;
  36.         infile >> N;
  37.  
  38.         std::deque<ii> Q;
  39.         std::vector<ii> outp;
  40.  
  41.         for(size_t i = 1; i <= N; ++i)
  42.         {
  43.             Q.push_back(std::make_pair(i, 0));
  44.         }
  45.  
  46.         size_t qsize;
  47.         while((qsize = Q.size()) > 0)
  48.         {
  49.             if(qsize > 1)
  50.             {
  51.                 ii top = Q.front();
  52.                 Q.pop_front();
  53.                 Q.push_back(top);
  54.             }
  55.             ii top = Q.front();
  56.             Q.pop_front();
  57.             top.second = 1 + outp.size();
  58.             outp.push_back(top);
  59.         }
  60.  
  61.         std::sort(outp.begin(), outp.end());
  62.         for(size_t i = 0; i < outp.size(); ++i)
  63.         {
  64.             outfile << outp[i].second << ' ';
  65.         }
  66.         outfile << '\n';
  67.     }
  68.  
  69. }
  70. #if 1
  71. int main(int argc, char * argv[])
  72. {
  73.     algorithm().solution("input.txt", "output.txt");
  74.     return 0;
  75. }
  76. #endif
Advertisement
Add Comment
Please, Sign In to add comment