Submission #2501671
Source Code Expand
/* --- author: dxm --- */
#include<bits/stdc++.h>
using namespace std;
#define INF 1e9
#define Inf 1e18
#define rep(i,n) for(int (i)=0;(i)<n;i++)
#define REP(i,n) for(int (i)=1;(i)<=n;i++)
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define fst first
#define snd second
typedef long long ll;
inline void Fail(){printf("0");exit(0);}
const int maxn=4005;
int n;
int dp[maxn][maxn],sum[maxn][maxn][2],a[maxn],c[maxn],pos[maxn][2],pos1[maxn][2],suf[maxn][maxn][2];
char s[2];
int main(){
scanf("%d",&n);
REP(i,2*n){
scanf("%s%d",s,&a[i]);
c[i]=s[0]=='W'?0:1;
pos[a[i]][c[i]]=i;
}
REP(i,n)rep(j,2){
for(int k=pos[i][j]+1;k<=2*n;k++)if(a[k]<i&&c[k]==j)pos1[i][j]++;
}
for(int i=2*n;i>=1;i--){
REP(j,n)rep(k,2)suf[i][j][k]=suf[i+1][j][k];
for(int j=a[i];j<=n;j++)suf[i][j][c[i]]++;
}
rep(i,2*n+1)rep(j,n+1)dp[i][j]=INF;
dp[0][0]=0;
rep(i,2*n)rep(j,n+1){
int cur=dp[i][j];
if(cur==INF)continue;
int w=j,b=i-j;
if(b<0)continue;
if(w<n)dp[i+1][w+1]=min(dp[i+1][w+1],cur+pos[w+1][0]+pos1[w+1][0]+suf[pos[w+1][0]][b][1]-(i+1));
if(b<n)dp[i+1][w]=min(dp[i+1][w],cur+pos[b+1][1]+pos1[b+1][1]+suf[pos[b+1][1]][w][0]-(i+1));
}
printf("%d",dp[2*n][n]);
return 0;
}
/*
Input:
-----------------
Output:
*/
Submission Info
Submission Time
2018-05-12 21:59:46+0900
Task
E - Sorted and Sorted
User
little_waxberry
Language
C++ (GCC 5.4.1)
Score
600
Code Size
1305 Byte
Status
AC
Exec Time
209 ms
Memory
189952 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:23:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:25:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s%d",s,&a[i]);
^
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
3 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
3 ms
4352 KB
1_007.txt
AC
2 ms
4352 KB
1_008.txt
AC
2 ms
4352 KB
1_009.txt
AC
3 ms
4352 KB
1_010.txt
AC
2 ms
4352 KB
1_011.txt
AC
3 ms
4352 KB
1_012.txt
AC
2 ms
4352 KB
1_013.txt
AC
2 ms
4352 KB
1_014.txt
AC
166 ms
171392 KB
1_015.txt
AC
37 ms
66432 KB
1_016.txt
AC
128 ms
146688 KB
1_017.txt
AC
62 ms
95232 KB
1_018.txt
AC
5 ms
12800 KB
1_019.txt
AC
29 ms
56064 KB
1_020.txt
AC
148 ms
159104 KB
1_021.txt
AC
60 ms
101376 KB
1_022.txt
AC
40 ms
72576 KB
1_023.txt
AC
113 ms
146688 KB
1_024.txt
AC
168 ms
187904 KB
1_025.txt
AC
203 ms
189952 KB
1_026.txt
AC
208 ms
189952 KB
1_027.txt
AC
203 ms
189952 KB
1_028.txt
AC
209 ms
189952 KB
1_029.txt
AC
203 ms
189952 KB
1_030.txt
AC
208 ms
189952 KB
1_031.txt
AC
203 ms
189952 KB
1_032.txt
AC
142 ms
189952 KB
1_033.txt
AC
174 ms
189952 KB
1_034.txt
AC
172 ms
189952 KB
1_035.txt
AC
170 ms
189952 KB