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 |
|
|
|
|
|
|
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 |