Submission #3920423
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> #include <map> #include <queue> #include <bitset> #include <set> using namespace std; int dp[2002][2002]; int cnt_white[2002][4002]; int cnt_black[2002][4002]; int main(){ int N; cin >> N; map<int, int> white, black; for(int i=0; i<2*N; i++){ char c; int a; cin >> c >> a; if(c == 'W') white[a] = i+1; else black[a] = i+1; } int aa[4002]; fill_n(aa, 4002, 0); for(int i=N; i>=1; i--){ aa[white[i]] = 1; for(int j=1; j<=2*N; j++) cnt_white[i][j] = cnt_white[i][j-1] + aa[j]; } fill_n(aa, 4002, 0); for(int i=N; i>=1; i--){ aa[black[i]] = 1; for(int j=1; j<=2*N; j++) cnt_black[i][j] = cnt_black[i][j-1] + aa[j]; } for(int i=0; i<=N; i++) for(int j=0; j<=N; j++) dp[i][j] = 1<<30; dp[0][0] = 0; for(int i=0; i<2*N; i++){ for(int w=0; w<=i; w++){ int b = i - w; if(b > N || w > N) continue; if(w < N) dp[w+1][b] = min(dp[w+1][b], dp[w][b] + cnt_white[w+2][white[w+1]] + cnt_black[b+1][white[w+1]]); if(b < N) dp[w][b+1] = min(dp[w][b+1], dp[w][b] + cnt_black[b+2][black[b+1]] + cnt_white[w+1][black[b+1]]); } } cout << dp[N][N] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Sorted and Sorted |
User | suzume |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 1451 Byte |
Status | AC |
Exec Time | 971 ms |
Memory | 78720 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 | 749 ms | 74112 KB |
1_015.txt | AC | 99 ms | 32256 KB |
1_016.txt | AC | 553 ms | 63872 KB |
1_017.txt | AC | 212 ms | 42880 KB |
1_018.txt | AC | 4 ms | 6912 KB |
1_019.txt | AC | 67 ms | 25984 KB |
1_020.txt | AC | 638 ms | 67968 KB |
1_021.txt | AC | 235 ms | 44928 KB |
1_022.txt | AC | 122 ms | 32384 KB |
1_023.txt | AC | 532 ms | 63872 KB |
1_024.txt | AC | 885 ms | 78336 KB |
1_025.txt | AC | 969 ms | 78720 KB |
1_026.txt | AC | 963 ms | 78720 KB |
1_027.txt | AC | 964 ms | 78720 KB |
1_028.txt | AC | 970 ms | 78720 KB |
1_029.txt | AC | 971 ms | 78720 KB |
1_030.txt | AC | 971 ms | 78720 KB |
1_031.txt | AC | 964 ms | 78720 KB |
1_032.txt | AC | 901 ms | 78720 KB |
1_033.txt | AC | 905 ms | 78720 KB |
1_034.txt | AC | 914 ms | 78720 KB |
1_035.txt | AC | 920 ms | 78720 KB |