Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <string>
  5. #include <cmath>
  6. #include <memory.h>
  7. #include <algorithm>
  8. #include <queue>
  9. #include <stack>
  10. #include <vector>
  11. #include <cstdlib>
  12. #include <map>
  13. #include <bitset>
  14. #include <set>
  15.  
  16. using namespace std;
  17.  
  18. #define INF 1E+9
  19. #define INFll 9223372036854775807
  20. #define EPS 1E-7
  21. #define MAXN
  22. #define MAXL
  23. #define mp(x, y) make_pair(x, y)
  24. #define pb(x) push_back(x)
  25. #define all(a) (a).begin(), (a).end()
  26. #ifdef DEBUG
  27. #  define LOG(x) (cerr << #x << " = " << (x) << '\n')
  28. #else
  29. #  define LOG(x) 0
  30. #endif
  31.  
  32. typedef long long LL ;
  33. typedef long double dbl ;
  34.  
  35. int main(){
  36.  
  37. #ifdef DEBUG
  38.     freopen("input.txt", "r",stdin);
  39.     freopen("output.txt", "w",stdout);
  40. #endif
  41.  
  42.     int n;
  43.     scanf("%d", &n);
  44.  
  45.     vector <bool> mod(n);
  46.     vector <int> p(n, -1);
  47.     vector <int> pnum(n, -1);
  48.     vector <int> val(n);
  49.  
  50.     {
  51.         int tmp;
  52.         scanf("%d", &tmp);
  53.         mod[tmp % n] = 1;
  54.         pnum[tmp % n] = 0;
  55.         val[0] = tmp;
  56.     }
  57.  
  58.     for (int i = 1; i < n; ++i) {
  59.         int num;
  60.         scanf("%d", &num);
  61.         val[i] = num;
  62.         num %= n;
  63.        
  64.         for (int j = 0; j < n; ++j) {
  65.             if (!mod[j] || pnum[j] == i)
  66.                 continue;
  67.            
  68.             int pos = (j + num) % n;
  69.            
  70.             if (!mod[pos]) {
  71.                 mod[pos] = 1;
  72.                 p[pos] = j;
  73.                 pnum[pos] = i;
  74.             }
  75.            
  76.         }
  77.        
  78.     }
  79.  
  80.     vector <int> ans;
  81.  
  82.     int v = 0;
  83.  
  84.     for (v = 0; v != -1; v = p[v])
  85.         ans.push_back(val[pnum[v]]);
  86.  
  87.     printf("%d\n", ans.size());
  88.  
  89.     for (int i = 0; i < ans.size(); ++i)
  90.         printf("%d\n", ans[i]);
  91.  
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement