Submission #1213899

#TimeUsernameProblemLanguageResultExecution timeMemory
1213899Ak_16Chorus (JOI23_chorus)C++20
0 / 100
1 ms2452 KiB
#include <iostream> #include <string> using namespace std; int pos[100005]; int don[1005][1005]; int main() { int n,k; string s; cin>>n>>k; cin>>s; for(int i=1; i<=500; i++){ for(int j=1; j<=500; j++){ don[i][j] = 1e6; } } don[0][0] = 0; int cnt=0; for(int i=1; i<=2*n; i++){ if(s[i-1]=='A'){ cnt++; pos[cnt] = i; } } int sm = 0; for(int i=1; i<=n; i++){ sm += pos[i]; don[i][1] = sm - (i*(i+1))/2; } for(int i=2; i<=n; i++){ for(int j=2; j<=i; j++){ int cur=0; for(int k=1; k<=n+1-i; k++){ cur += max(0, pos[i+k-1] - 2*i+k-2); don[i+k-1][j] = min(don[i+k-1][j], don[i-1][j-1] + cur); } } } cout<<don[n][k]<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...