Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #define N 22222
- using namespace std;
- long long n,k,a[N];
- long long t[N][15],ans;
- long long sum(long long k, long long l)
- {
- long long res=0;
- while (l>0){
- res+=t[l][k];
- l=(l&(l+1))-1;}
- return res;
- }
- void update(long long k, long long l,long long r)
- {
- while (l<=n){
- t[l][k]+=r;
- l=l|(l+1);}
- }
- main()
- {
- //freopen("input.txt","r",stdin);
- //freopen("output.txt","w",stdout);
- scanf("%I64d%I64d",&n,&k);
- for (long long i=1;i<=n;i++)scanf("%I64d",&a[i]);
- for (long long i=n;i>=1;i--){
- update(1,a[i],1);
- for(long long j=2;j<=k-1;j++) update(j,a[i],sum(j-1,a[i]-1));
- ans+=sum(k-1,a[i]-1);}
- printf("%I64d",ans);
- return 0;
- }
Add Comment
Please, Sign In to add comment