Guest User

Untitled

a guest
Jun 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <cstdio>
  2. #define N 22222
  3. using namespace std;
  4. long long n,k,a[N];
  5. long long t[N][15],ans;
  6. long long sum(long long k, long long l)
  7. {
  8.      long long res=0;
  9.      while (l>0){
  10.            res+=t[l][k];
  11.            l=(l&(l+1))-1;}
  12.      return res;
  13. }
  14. void update(long long k, long long l,long long r)
  15. {
  16.      while (l<=n){
  17.            t[l][k]+=r;
  18.            l=l|(l+1);}
  19. }
  20. main()
  21. {
  22.       //freopen("input.txt","r",stdin);
  23.       //freopen("output.txt","w",stdout);
  24.       scanf("%I64d%I64d",&n,&k);
  25.       for (long long i=1;i<=n;i++)scanf("%I64d",&a[i]);
  26.       for (long long i=n;i>=1;i--){
  27.           update(1,a[i],1);
  28.           for(long long j=2;j<=k-1;j++) update(j,a[i],sum(j-1,a[i]-1));
  29.           ans+=sum(k-1,a[i]-1);}
  30.       printf("%I64d",ans);
  31.       return 0;
  32. }
Add Comment
Please, Sign In to add comment