Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. 3209
  2.  
  3.  
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. const int mod = 666013;
  8. int aib[111][111111], x, n, K, res, cnt, s;
  9.  
  10. inline void Update(int k, int poz, int val)
  11. {
  12. for (int i = poz; i <= n; i += i & -i)
  13. {
  14. aib[k][i] += val;
  15. if (aib[k][i] > mod)
  16. aib[k][i] -= mod;
  17. }
  18. }
  19.  
  20. inline int Query(int k, int poz)
  21. {
  22. s = 0;
  23. for (int i = poz; i > 0; i -= i & -i)
  24. {
  25. s += aib[k][i];
  26. if (s > mod)
  27. s -= mod;
  28. }
  29. return s;
  30. }
  31.  
  32. int main()
  33. {
  34. ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  35. cin >> n >> K;
  36. vector<int> v(n + 1), vs(n + 1);
  37. for (int i = 1; i <= n; ++i)
  38. cin >> v[i], vs[i] = v[i];
  39. sort(vs.begin(), vs.end());
  40. for (int i = 1; i <= n; ++i)
  41. v[i] = lower_bound(vs.begin(), vs.end(), v[i]) - vs.begin();
  42. for (int i = 1; i <= n; ++i)
  43. {
  44. Update(1, v[i], 1);
  45. for (int k = 2; k <= K; ++k)
  46. Update(k, v[i], Query(k - 1, v[i] - 1));
  47. }
  48. cout << Query(K, n);
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement