Submission #60486857


Source Code Expand

#include <bits/stdc++.h>
#include<atcoder/all>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
using namespace atcoder;
#define all(a) a.begin(),a.end()
typedef long long ll;
typedef pair<ll,ll> P;
typedef pair<P,ll> PP;
typedef vector<ll> vi;
constexpr ll inf=1ll<<61;
constexpr ll mod=998244353;
typedef modint1000000007 mi;

int a[200005];
mi dp[200005];

int main(){
    int n;ll k;
    cin>>n>>k;
    rep(i,n)cin>>a[i];

    map<int,int>M;
    rep(i,n)M[a[i]]++;
    int cnt=0;
    for(auto &e:M){
        e.second=cnt;
        cnt++;
    }
    rep(i,n)a[i]=M[a[i]];

    ll inv=0;
    fenwick_tree<ll>fw(n);

    int L=0,R=0;

    for(;L<n;L++){
        while(R<n){
            if(inv+fw.sum(a[R]+1,n)<=k){
                inv+=fw.sum(a[R]+1,n);
                fw.add(a[R],1);
                R++;
            }
            else{
                break;
            }
        }
        inv-=fw.sum(0,a[L]);
        fw.add(a[L],-1);
        if(L==0){
            dp[L]+=1;
            dp[R+1]-=1;
            dp[L+1]+=dp[L];
        }
        else{
            dp[L+1]+=2*dp[L];
            dp[R+1]-=dp[L];
        }
    }
    cout<<dp[n].val()<<endl;
}

Submission Info

Submission Time
Task 089 - Partitions and Inversions(★7)
User Rho17
Language C++ 20 (gcc 12.2)
Score 7
Code Size 1229 Byte
Status AC
Exec Time 174 ms
Memory 15572 KiB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3 Subtask4 All
Score / Max Score 0 / 0 1 / 1 1 / 1 1 / 1 2 / 2 2 / 2
Status
AC × 3
AC × 14
AC × 22
AC × 35
AC × 51
AC × 78
Set Name Test Cases
Sample sample01.txt, sample02.txt, sample03.txt
Subtask1 handmade00.txt, sample01.txt, sample03.txt, subtask1_all_same.txt, subtask1_decrease.txt, subtask1_increase.txt, subtask1_max_decrease.txt, subtask1_max_increase.txt, subtask1_max_random00.txt, subtask1_max_random01.txt, subtask1_max_random02.txt, subtask1_random00.txt, subtask1_random01.txt, subtask1_random02.txt
Subtask2 handmade00.txt, handmade01.txt, handmade02.txt, sample01.txt, sample02.txt, sample03.txt, subtask2_all_same.txt, subtask2_decrease.txt, subtask2_increase.txt, subtask2_max_decrease.txt, subtask2_max_increase.txt, subtask2_max_max.txt, subtask2_max_random00.txt, subtask2_max_random01.txt, subtask2_max_random02.txt, subtask2_max_zero.txt, subtask2_random00.txt, subtask2_random01.txt, subtask2_random02.txt, subtask2_small_K00.txt, subtask2_small_K01.txt, subtask2_small_K02.txt
Subtask3 sample01.txt, sample02.txt, sample03.txt, subtask2_all_same.txt, subtask2_decrease.txt, subtask2_increase.txt, subtask2_max_decrease.txt, subtask2_max_increase.txt, subtask2_max_max.txt, subtask2_max_random00.txt, subtask2_max_random01.txt, subtask2_max_random02.txt, subtask2_max_zero.txt, subtask2_random00.txt, subtask2_random01.txt, subtask2_random02.txt, subtask2_small_K00.txt, subtask2_small_K01.txt, subtask2_small_K02.txt, subtask3_all_same.txt, subtask3_decrease.txt, subtask3_increase.txt, subtask3_max_decrease.txt, subtask3_max_increase.txt, subtask3_max_max.txt, subtask3_max_random00.txt, subtask3_max_random01.txt, subtask3_max_random02.txt, subtask3_max_zero.txt, subtask3_random00.txt, subtask3_random01.txt, subtask3_random02.txt, subtask3_small_K00.txt, subtask3_small_K01.txt, subtask3_small_K02.txt
Subtask4 sample01.txt, sample02.txt, sample03.txt, subtask2_all_same.txt, subtask2_decrease.txt, subtask2_increase.txt, subtask2_max_decrease.txt, subtask2_max_increase.txt, subtask2_max_max.txt, subtask2_max_random00.txt, subtask2_max_random01.txt, subtask2_max_random02.txt, subtask2_max_zero.txt, subtask2_random00.txt, subtask2_random01.txt, subtask2_random02.txt, subtask2_small_K00.txt, subtask2_small_K01.txt, subtask2_small_K02.txt, subtask3_all_same.txt, subtask3_decrease.txt, subtask3_increase.txt, subtask3_max_decrease.txt, subtask3_max_increase.txt, subtask3_max_max.txt, subtask3_max_random00.txt, subtask3_max_random01.txt, subtask3_max_random02.txt, subtask3_max_zero.txt, subtask3_random00.txt, subtask3_random01.txt, subtask3_random02.txt, subtask3_small_K00.txt, subtask3_small_K01.txt, subtask3_small_K02.txt, subtask4_all_same.txt, subtask4_decrease.txt, subtask4_increase.txt, subtask4_max_decrease.txt, subtask4_max_increase.txt, subtask4_max_max.txt, subtask4_max_random00.txt, subtask4_max_random01.txt, subtask4_max_random02.txt, subtask4_max_zero.txt, subtask4_random00.txt, subtask4_random01.txt, subtask4_random02.txt, subtask4_small_K00.txt, subtask4_small_K01.txt, subtask4_small_K02.txt
All handmade00.txt, handmade01.txt, handmade02.txt, sample01.txt, sample02.txt, sample03.txt, subtask1_all_same.txt, subtask1_decrease.txt, subtask1_increase.txt, subtask1_max_decrease.txt, subtask1_max_increase.txt, subtask1_max_random00.txt, subtask1_max_random01.txt, subtask1_max_random02.txt, subtask1_random00.txt, subtask1_random01.txt, subtask1_random02.txt, subtask2_all_same.txt, subtask2_decrease.txt, subtask2_increase.txt, subtask2_max_decrease.txt, subtask2_max_increase.txt, subtask2_max_max.txt, subtask2_max_random00.txt, subtask2_max_random01.txt, subtask2_max_random02.txt, subtask2_max_zero.txt, subtask2_random00.txt, subtask2_random01.txt, subtask2_random02.txt, subtask2_small_K00.txt, subtask2_small_K01.txt, subtask2_small_K02.txt, subtask3_all_same.txt, subtask3_decrease.txt, subtask3_increase.txt, subtask3_max_decrease.txt, subtask3_max_increase.txt, subtask3_max_max.txt, subtask3_max_random00.txt, subtask3_max_random01.txt, subtask3_max_random02.txt, subtask3_max_zero.txt, subtask3_random00.txt, subtask3_random01.txt, subtask3_random02.txt, subtask3_small_K00.txt, subtask3_small_K01.txt, subtask3_small_K02.txt, subtask4_all_same.txt, subtask4_decrease.txt, subtask4_increase.txt, subtask4_max_decrease.txt, subtask4_max_increase.txt, subtask4_max_max.txt, subtask4_max_random00.txt, subtask4_max_random01.txt, subtask4_max_random02.txt, subtask4_max_zero.txt, subtask4_random00.txt, subtask4_random01.txt, subtask4_random02.txt, subtask4_small_K00.txt, subtask4_small_K01.txt, subtask4_small_K02.txt, subtask5_all_same.txt, subtask5_decrease.txt, subtask5_increase.txt, subtask5_max_decrease.txt, subtask5_max_increase.txt, subtask5_max_max.txt, subtask5_max_random00.txt, subtask5_max_random01.txt, subtask5_max_random02.txt, subtask5_max_zero.txt, subtask5_random00.txt, subtask5_random01.txt, subtask5_random02.txt
Case Name Status Exec Time Memory
handmade00.txt AC 1 ms 4248 KiB
handmade01.txt AC 1 ms 4308 KiB
handmade02.txt AC 1 ms 4248 KiB
sample01.txt AC 1 ms 4256 KiB
sample02.txt AC 1 ms 4300 KiB
sample03.txt AC 1 ms 4260 KiB
subtask1_all_same.txt AC 50 ms 5716 KiB
subtask1_decrease.txt AC 66 ms 11672 KiB
subtask1_increase.txt AC 88 ms 14032 KiB
subtask1_max_decrease.txt AC 106 ms 15556 KiB
subtask1_max_increase.txt AC 105 ms 15472 KiB
subtask1_max_random00.txt AC 172 ms 15488 KiB
subtask1_max_random01.txt AC 170 ms 15496 KiB
subtask1_max_random02.txt AC 171 ms 15560 KiB
subtask1_random00.txt AC 94 ms 11132 KiB
subtask1_random01.txt AC 158 ms 14700 KiB
subtask1_random02.txt AC 164 ms 15300 KiB
subtask2_all_same.txt AC 1 ms 4404 KiB
subtask2_decrease.txt AC 1 ms 4264 KiB
subtask2_increase.txt AC 1 ms 4308 KiB
subtask2_max_decrease.txt AC 1 ms 4252 KiB
subtask2_max_increase.txt AC 1 ms 4312 KiB
subtask2_max_max.txt AC 1 ms 4360 KiB
subtask2_max_random00.txt AC 1 ms 4252 KiB
subtask2_max_random01.txt AC 1 ms 4264 KiB
subtask2_max_random02.txt AC 1 ms 4260 KiB
subtask2_max_zero.txt AC 1 ms 4264 KiB
subtask2_random00.txt AC 1 ms 4456 KiB
subtask2_random01.txt AC 1 ms 4284 KiB
subtask2_random02.txt AC 1 ms 4380 KiB
subtask2_small_K00.txt AC 1 ms 4264 KiB
subtask2_small_K01.txt AC 1 ms 4224 KiB
subtask2_small_K02.txt AC 1 ms 4228 KiB
subtask3_all_same.txt AC 1 ms 4316 KiB
subtask3_decrease.txt AC 1 ms 4384 KiB
subtask3_increase.txt AC 1 ms 4284 KiB
subtask3_max_decrease.txt AC 1 ms 4244 KiB
subtask3_max_increase.txt AC 1 ms 4332 KiB
subtask3_max_max.txt AC 2 ms 4304 KiB
subtask3_max_random00.txt AC 1 ms 4268 KiB
subtask3_max_random01.txt AC 2 ms 4304 KiB
subtask3_max_random02.txt AC 2 ms 4312 KiB
subtask3_max_zero.txt AC 1 ms 4492 KiB
subtask3_random00.txt AC 3 ms 4352 KiB
subtask3_random01.txt AC 1 ms 4464 KiB
subtask3_random02.txt AC 1 ms 4312 KiB
subtask3_small_K00.txt AC 2 ms 4304 KiB
subtask3_small_K01.txt AC 2 ms 4460 KiB
subtask3_small_K02.txt AC 2 ms 4296 KiB
subtask4_all_same.txt AC 1 ms 4276 KiB
subtask4_decrease.txt AC 4 ms 4624 KiB
subtask4_increase.txt AC 5 ms 4980 KiB
subtask4_max_decrease.txt AC 5 ms 4992 KiB
subtask4_max_increase.txt AC 5 ms 5032 KiB
subtask4_max_max.txt AC 7 ms 5032 KiB
subtask4_max_random00.txt AC 7 ms 4852 KiB
subtask4_max_random01.txt AC 7 ms 4888 KiB
subtask4_max_random02.txt AC 7 ms 4888 KiB
subtask4_max_zero.txt AC 7 ms 4848 KiB
subtask4_random00.txt AC 6 ms 4660 KiB
subtask4_random01.txt AC 6 ms 4764 KiB
subtask4_random02.txt AC 5 ms 4756 KiB
subtask4_small_K00.txt AC 7 ms 4900 KiB
subtask4_small_K01.txt AC 7 ms 4780 KiB
subtask4_small_K02.txt AC 7 ms 4996 KiB
subtask5_all_same.txt AC 56 ms 6068 KiB
subtask5_decrease.txt AC 26 ms 7040 KiB
subtask5_increase.txt AC 10 ms 5400 KiB
subtask5_max_decrease.txt AC 104 ms 15472 KiB
subtask5_max_increase.txt AC 104 ms 15504 KiB
subtask5_max_max.txt AC 167 ms 15500 KiB
subtask5_max_random00.txt AC 166 ms 15468 KiB
subtask5_max_random01.txt AC 166 ms 15568 KiB
subtask5_max_random02.txt AC 166 ms 15552 KiB
subtask5_max_zero.txt AC 174 ms 15572 KiB
subtask5_random00.txt AC 7 ms 4860 KiB
subtask5_random01.txt AC 95 ms 11056 KiB
subtask5_random02.txt AC 31 ms 6588 KiB