Submission #8384669
Source Code Expand
#include <algorithm> #include <bitset> #include <cassert> #include <chrono> #include <climits> #include <cmath> #include <complex> #include <cstring> #include <deque> #include <functional> #include <iostream> #include <list> #include <map> #include <numeric> #include <queue> #include <random> #include <set> #include <stack> #include <unordered_map> #include <unordered_set> #include <vector> #include <cstdint> using namespace std; typedef long long ll; #define MP make_pair #define PB push_back #define inf 1000000007 #define mod 1000000007 #define rep(i,n) for(int i = 0; i < (int)(n); ++i) int dp[2001][2001]; int B[2001][2001]; int W[2001][2001]; int main(){ int n; cin >> n; vector<int>a(2*n); vector<char>c(2*n); vector<int>ib(n+1); vector<int>iw(n+1); rep(i,2*n){ cin >> c[i] >> a[i]; if(c[i]=='B'){ ib[a[i]] = i; }else{ iw[a[i]] = i; } } for(int i=1;i<=n;i++){ int bid = ib[i]; int cnt = 0; for(int j=0;j<bid;j++){ if(c[j]=='B'){ if(a[j]>i){ cnt++; } }else{ B[i][a[j]-1]++; } } for(int j=n-1;j>=0;j--){ B[i][j] += B[i][j+1]; } for(int j=n;j>=0;j--){ B[i][j] += cnt; } } for(int i=1;i<=n;i++){ int wid = iw[i]; int cnt = 0; for(int j=0;j<wid;j++){ if(c[j]=='W'){ if(a[j]>i){ cnt++; } }else{ W[i][a[j]-1]++; } } for(int j=n-1;j>=0;j--){ W[i][j] += W[i][j+1]; } for(int j=n;j>=0;j--){ W[i][j] += cnt; } } // rep(i,n+1){ // rep(j,n+1){ // cerr << "i:" << i << " j:" << j << " " << B[i][j] << endl; // } // } // rep(i,n+1){ // rep(j,n+1){ // cerr << "i:" << i << " j:" << j << " " << W[i][j] << endl; // } // } rep(i,n+1){ rep(j,n+1){ dp[i][j] = inf; } } dp[0][0] = 0; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ if(i!=0){ dp[i][j] = min(dp[i][j],dp[i-1][j] + B[i][j]); } if(j!=0){ dp[i][j] = min(dp[i][j],dp[i][j-1] + W[j][i]); } } } cout << dp[n][n] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Sorted and Sorted |
User | mtsd |
Language | C++14 (Clang 3.8.0) |
Score | 600 |
Code Size | 2612 Byte |
Status | AC |
Exec Time | 95 ms |
Memory | 47360 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 2 ms | 4352 KB |
0_001.txt | AC | 2 ms | 4352 KB |
0_002.txt | AC | 2 ms | 4352 KB |
1_003.txt | AC | 2 ms | 4352 KB |
1_004.txt | AC | 2 ms | 4352 KB |
1_005.txt | AC | 2 ms | 4352 KB |
1_006.txt | AC | 2 ms | 4352 KB |
1_007.txt | AC | 2 ms | 4352 KB |
1_008.txt | AC | 2 ms | 4352 KB |
1_009.txt | AC | 2 ms | 4352 KB |
1_010.txt | AC | 2 ms | 4352 KB |
1_011.txt | AC | 2 ms | 4352 KB |
1_012.txt | AC | 2 ms | 4352 KB |
1_013.txt | AC | 2 ms | 4352 KB |
1_014.txt | AC | 75 ms | 45440 KB |
1_015.txt | AC | 14 ms | 20480 KB |
1_016.txt | AC | 57 ms | 41216 KB |
1_017.txt | AC | 25 ms | 28928 KB |
1_018.txt | AC | 3 ms | 6912 KB |
1_019.txt | AC | 10 ms | 18304 KB |
1_020.txt | AC | 65 ms | 43264 KB |
1_021.txt | AC | 19 ms | 28928 KB |
1_022.txt | AC | 12 ms | 22528 KB |
1_023.txt | AC | 39 ms | 41216 KB |
1_024.txt | AC | 57 ms | 46976 KB |
1_025.txt | AC | 94 ms | 47232 KB |
1_026.txt | AC | 93 ms | 47232 KB |
1_027.txt | AC | 94 ms | 47232 KB |
1_028.txt | AC | 95 ms | 47232 KB |
1_029.txt | AC | 94 ms | 47232 KB |
1_030.txt | AC | 93 ms | 47232 KB |
1_031.txt | AC | 93 ms | 47232 KB |
1_032.txt | AC | 61 ms | 47232 KB |
1_033.txt | AC | 61 ms | 47232 KB |
1_034.txt | AC | 60 ms | 47360 KB |
1_035.txt | AC | 60 ms | 47232 KB |