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
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
AC × 3
AC × 36
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