QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#515065#2271. High-Tech Detectiveuntitledtwo#RE 8ms129356kbC++171.2kb2024-08-11 14:58:052024-08-11 14:58:06

Judging History

你现在查看的是最新测评结果

  • [2024-08-11 14:58:06]
  • 评测
  • 测评结果:RE
  • 用时:8ms
  • 内存:129356kb
  • [2024-08-11 14:58:05]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
typedef long long ll;
#define int ll
int a[5010], c[5010];
bool b[5010];
int f[5010][5010];
inline void admod(int &a, int b)
{
	a += b;
	if(a >= mod)
		a -= mod;
}
signed main()
{
	int n;
	scanf("%lld", &n);
	int N = 2 * n;
	for(int i = 1; i <= N; i++)
	{
		char ch;
		while((ch = getchar()) != 'I' && ch != 'O');
		b[i] = (ch == 'O');
		scanf("%lld", &a[i]);
		c[a[i]]++;
	}
	int cnt = 0;
	f[0][0] = 1;
	for(int i = 1; i <= N; i++)
	{
		if(a[i] && c[a[i]] == 2)
		{
			for(int j = 0; j <= n; j++)
				f[i][j] = f[i - 1][j];
			continue;
		}
		for(int j = 0; j <= n; j++)
		{
			if(!b[i])
			{
				if(!a[i])
					admod(f[i][j], f[i - 1][j]);
				else if(j)
					admod(f[i][j], f[i - 1][j - 1]);
			}
			else
			{
				if(!a[i])
				{
					admod(f[i][j], f[i - 1][j + 1] * (j + 1) % mod);
					admod(f[i][j], f[i - 1][j] * (cnt - j) % mod);
				}
				else
					admod(f[i][j], f[i - 1][j] * (cnt - j) % mod);
			}
		}
		cnt += (b[i] ? -1 : 1);
	}
	int rem = 0;
	for(int i = 1; i <= n; i++)
		rem += !c[i];
	int ans = f[N][0];
	for(int i = 1; i <= rem; i++)
		ans = ans * i % mod;
	printf("%lld\n", ans);
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3920kb

input:

4
I 1
I 0
O 0
I 0
O 2
I 4
O 0
O 4

output:

3

result:

ok single line: '3'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3920kb

input:

3
I 0
I 0
I 0
O 0
O 0
O 0

output:

36

result:

ok single line: '36'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3896kb

input:

1
I 0
O 1

output:

1

result:

ok single line: '1'

Test #4:

score: 0
Accepted
time: 1ms
memory: 5868kb

input:

2
I 0
I 1
O 1
O 0

output:

1

result:

ok single line: '1'

Test #5:

score: 0
Accepted
time: 0ms
memory: 3924kb

input:

4
I 0
I 0
O 0
O 0
I 0
I 3
O 0
O 0

output:

24

result:

ok single line: '24'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3940kb

input:

8
I 0
I 0
I 0
I 8
I 4
I 0
O 1
I 0
O 8
O 4
I 5
O 0
O 0
O 5
O 0
O 7

output:

576

result:

ok single line: '576'

Test #7:

score: 0
Accepted
time: 0ms
memory: 4088kb

input:

16
I 5
I 4
I 2
I 1
I 10
I 6
I 14
I 3
I 11
I 7
I 16
O 0
O 7
I 15
O 1
I 8
I 12
O 4
O 11
O 0
I 13
O 14
O 12
O 13
I 0
O 5
O 0
O 0
O 0
O 0
O 0
O 3

output:

2400

result:

ok single line: '2400'

Test #8:

score: 0
Accepted
time: 0ms
memory: 8116kb

input:

50
I 42
I 32
I 29
I 14
I 27
I 0
I 9
I 18
I 11
I 25
O 31
I 39
I 41
I 23
I 43
I 1
I 35
O 25
I 44
I 5
I 28
I 48
I 33
I 50
I 21
I 19
O 29
O 33
O 19
O 44
I 17
I 6
O 32
O 23
I 30
O 42
I 13
O 27
I 20
I 34
I 15
O 17
O 30
I 36
O 0
I 0
I 10
O 21
O 36
I 40
O 34
O 9
I 4
O 20
O 14
I 47
O 1
I 22
O 50
I 26
I 24
I ...

output:

2

result:

ok single line: '2'

Test #9:

score: 0
Accepted
time: 0ms
memory: 26644kb

input:

300
I 117
I 122
I 64
I 166
I 65
I 70
I 81
I 180
I 270
I 211
I 191
I 95
I 103
I 271
O 180
I 161
I 108
I 149
I 175
I 79
I 225
I 141
I 146
I 240
I 168
I 227
I 233
I 75
I 286
I 7
I 43
I 246
I 285
I 63
I 73
I 282
I 269
I 36
I 291
I 2
I 55
I 41
O 73
I 170
I 25
I 196
I 220
I 33
I 165
I 203
O 70
I 153
I 289...

output:

12

result:

ok single line: '12'

Test #10:

score: 0
Accepted
time: 5ms
memory: 28492kb

input:

300
I 235
I 3
I 248
I 144
I 232
I 60
I 80
I 52
I 141
I 297
I 84
I 48
I 264
I 217
I 118
I 260
I 151
I 206
I 288
I 268
I 191
I 159
I 107
I 261
I 293
I 188
I 114
I 145
I 55
I 239
I 49
I 2
I 64
I 243
I 75
I 189
I 146
I 255
I 121
I 17
I 179
I 32
I 286
I 53
I 37
I 46
I 276
I 278
I 51
I 106
I 197
O 17
I 19...

output:

18

result:

ok single line: '18'

Test #11:

score: 0
Accepted
time: 0ms
memory: 6620kb

input:

100
I 8
I 51
I 60
I 48
I 79
I 90
I 42
I 15
I 29
I 21
I 33
I 68
I 91
I 73
I 30
I 12
I 96
I 74
I 95
I 54
I 40
I 7
I 45
I 44
I 28
I 2
I 22
I 23
I 20
I 72
I 63
I 67
I 13
O 22
I 88
I 32
I 24
I 17
I 70
I 16
O 16
I 56
I 97
I 86
I 89
O 0
I 61
I 3
I 19
O 0
O 0
I 11
O 0
O 0
I 47
I 100
I 64
I 92
I 82
O 97
O 0
...

output:

930138667

result:

ok single line: '930138667'

Test #12:

score: 0
Accepted
time: 0ms
memory: 4724kb

input:

100
I 0
I 0
I 0
I 0
I 0
I 99
I 0
I 0
O 0
I 0
I 84
I 0
I 29
I 0
I 0
I 0
I 0
I 22
O 0
I 4
O 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
O 0
I 95
I 0
O 38
I 0
I 0
I 0
I 31
I 0
I 0
I 0
O 0
I 0
I 32
O 0
I 0
I 65
O 0
I 0
I 0
I 0
I 0
O 0
I 28
O 0
I 0
I 0
I 0
I 0
O 0
I 0
I 47
O 0
I 17
O 0
I 0
I 39
I 0
I 0
I 42
I ...

output:

506186867

result:

ok single line: '506186867'

Test #13:

score: 0
Accepted
time: 0ms
memory: 8676kb

input:

100
I 19
I 10
I 0
I 0
I 45
I 34
I 0
I 4
I 26
I 62
I 0
I 0
I 73
I 0
I 0
O 92
I 0
I 0
I 78
I 0
I 31
I 9
I 98
I 95
I 20
I 49
I 0
I 32
I 0
O 10
O 0
I 0
I 11
I 16
I 0
I 58
I 0
I 0
I 0
I 46
O 0
I 35
I 18
I 0
I 43
I 97
I 0
I 3
I 0
O 0
I 38
I 100
I 37
O 0
I 0
I 0
O 0
I 50
I 29
I 0
I 48
O 29
O 64
I 0
O 3
O 0...

output:

640219459

result:

ok single line: '640219459'

Test #14:

score: 0
Accepted
time: 2ms
memory: 10360kb

input:

100
I 31
I 4
I 78
I 9
I 5
I 63
I 66
I 0
O 66
I 0
I 70
I 88
I 64
I 28
I 74
I 0
I 79
I 94
I 75
O 88
I 0
O 0
I 40
I 97
I 83
I 0
I 25
I 44
I 29
I 2
I 80
I 67
I 0
O 67
I 7
O 41
I 62
I 20
I 90
I 19
O 75
I 0
I 0
I 17
I 16
I 0
O 99
I 91
I 61
I 95
O 16
I 92
O 31
I 55
I 85
O 9
I 81
I 0
I 0
I 98
O 63
O 98
I 0
...

output:

720956479

result:

ok single line: '720956479'

Test #15:

score: 0
Accepted
time: 0ms
memory: 11456kb

input:

200
I 154
I 187
I 164
I 0
I 0
I 0
I 168
I 116
I 162
I 142
I 0
I 0
I 41
I 48
I 68
O 0
I 16
I 0
I 0
I 30
I 90
O 162
I 96
I 151
I 121
I 0
I 177
I 0
I 0
I 130
O 193
I 0
I 10
I 15
I 0
I 31
O 41
I 190
I 0
I 0
I 81
I 128
I 33
I 166
I 0
I 28
I 0
I 118
I 100
I 199
I 0
I 0
I 14
I 105
I 119
O 0
I 73
I 0
I 26
I...

output:

125161791

result:

ok single line: '125161791'

Test #16:

score: 0
Accepted
time: 0ms
memory: 15068kb

input:

200
I 187
I 131
I 111
I 107
I 35
I 12
I 175
I 197
I 82
I 143
I 42
I 17
I 8
I 141
I 139
I 50
I 122
I 36
I 66
I 96
I 182
I 101
O 0
I 126
I 118
O 0
I 147
I 93
I 116
I 191
I 100
I 156
I 58
I 95
I 165
I 30
I 6
I 7
I 49
I 186
I 198
I 26
I 77
I 16
I 150
I 123
I 10
I 176
I 14
I 83
I 81
I 138
I 39
I 61
I 5
I...

output:

76110076

result:

ok single line: '76110076'

Test #17:

score: 0
Accepted
time: 2ms
memory: 6180kb

input:

200
I 0
I 0
I 33
I 13
I 0
I 0
I 0
I 141
I 132
I 0
I 0
I 171
I 0
I 0
I 0
I 22
I 0
I 0
I 0
I 0
I 104
I 90
I 74
I 0
I 0
I 0
I 180
I 0
O 0
I 15
I 0
I 26
I 0
I 0
I 70
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 67
I 0
I 199
I 0
I 94
I 0
O 0
I 0
O 0
I 0
I 101
I 0
I 0
I 0
I 0
I 136
I 96
I 178
I 9
I 78
I 0
O 0
I 36
I 0
O...

output:

816352373

result:

ok single line: '816352373'

Test #18:

score: 0
Accepted
time: 4ms
memory: 19832kb

input:

300
I 142
I 117
I 3
I 101
I 201
I 0
I 104
I 251
I 230
I 198
I 0
I 83
I 203
I 0
I 255
I 102
I 0
I 11
I 0
I 0
I 157
I 0
I 0
I 211
I 109
I 0
I 279
I 204
I 124
O 104
I 0
I 0
I 0
I 18
I 44
I 0
I 33
I 268
I 0
I 36
I 60
I 207
I 224
I 70
I 223
I 75
I 0
I 103
I 195
I 0
I 0
I 122
I 96
I 111
I 0
I 138
I 0
I 7
...

output:

181020105

result:

ok single line: '181020105'

Test #19:

score: 0
Accepted
time: 3ms
memory: 7684kb

input:

300
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
I 281
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 32
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
I...

output:

14169673

result:

ok single line: '14169673'

Test #20:

score: 0
Accepted
time: 0ms
memory: 7696kb

input:

300
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
I 0
O 0
I 0
I 0
O 0
I 0
I 0
I 0
I 0
I 0
...

output:

999057162

result:

ok single line: '999057162'

Test #21:

score: 0
Accepted
time: 8ms
memory: 50840kb

input:

1000
I 0
I 446
I 327
I 910
I 547
I 0
I 0
I 933
I 28
I 119
I 0
I 0
I 0
I 559
I 0
I 30
I 0
I 63
I 776
I 838
I 260
I 0
I 0
I 433
I 14
I 78
I 0
I 0
I 89
O 596
I 566
I 594
I 68
I 0
I 615
I 634
I 616
I 0
I 47
I 0
I 0
I 493
I 524
I 708
I 832
I 940
I 858
I 759
I 276
I 309
I 440
I 918
I 0
I 188
I 945
I 0
I 0...

output:

891071351

result:

ok single line: '891071351'

Test #22:

score: 0
Accepted
time: 8ms
memory: 129356kb

input:

2000
I 0
I 1229
I 0
I 250
I 729
I 422
I 0
I 67
I 1260
I 0
I 1562
I 121
I 0
I 702
I 175
I 581
I 16
I 0
I 1646
I 816
I 0
I 0
I 1694
I 979
I 0
I 1405
I 307
I 1459
I 402
I 1809
I 1069
I 0
I 447
I 0
I 618
I 855
I 280
I 73
I 668
I 0
I 452
O 816
I 0
I 312
I 1365
I 819
I 248
I 546
I 460
I 1390
I 0
I 1164
I ...

output:

982485283

result:

ok single line: '982485283'

Test #23:

score: -100
Runtime Error

input:

3000
I 2124
I 211
I 2096
I 2695
I 0
I 68
I 129
I 2199
I 1900
I 0
I 0
I 2754
I 981
I 483
I 1618
I 1196
I 1568
I 1363
I 0
I 1313
I 0
I 188
I 186
I 946
I 2664
I 427
I 1512
I 1147
I 2132
I 2068
I 1815
I 1166
I 2012
I 1907
O 483
I 901
I 125
I 1806
I 2609
I 1736
I 1346
I 0
I 1886
I 1054
I 304
I 2908
I 54
...

output:


result: