QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#358269#407. Toiletsbonkar36 35ms7476kbC++142.1kb2024-03-19 18:37:052024-03-19 18:37:06

Judging History

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

  • [2024-03-19 18:37:06]
  • 评测
  • 测评结果:36
  • 用时:35ms
  • 内存:7476kb
  • [2024-03-19 18:37:05]
  • 提交

answer

/* Generated by the powerful Sio Tool
 * You can download the binary file here: https://github.com/Arapak/sio-tool
 * Author:  (Karol Bonat)
 * Time of creation: 2024-03-19 10:29:46
 * Notes: 
**/

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

constexpr int MAXN = 1000006;

int n, M;
int m, f;

int nxt_m[MAXN];
int nxt_f[MAXN];

int n0_m[MAXN];
int n0_f[MAXN];


bool tab[MAXN]; // 1 - female

bool usd[MAXN];

int find(int i, int *nxt){
	if(i > n){
		return i;
	}
	if(usd[i]){
		nxt[i] = find(nxt[i], nxt);
		return nxt[i];
	}
	return i;
}

bool test(int lim){
	int mf = (n/2-m);
	for(int i = 1; i <= n; i++){
		usd[i] = 0;
		nxt_m[i] = n0_m[i];
		nxt_f[i] = n0_f[i];
	}
	int cnt = 0;
	for(int i = 1; i <= n; ){
		cnt -= (usd[i] && !tab[i]);
		if(usd[i]){
			i++;
			continue;
		}
		int j = i+1;

		while(usd[j]){
			cnt-=(!tab[j]);
			j++;
		}
		if(tab[i] && tab[j] && cnt < lim){
			int nm = find(nxt_m[j], nxt_m);
			if(nm <= n){
				cnt++;
				usd[nm] = 1;
				i=j;
				continue;
			}
		}
		if(tab[i] && tab[j]){
			//We failed to joink (probably cnt=lim), try to push it through
			if(mf){
				i=j+1;
				mf--;
				continue;
			}
			else{
				return 0;
			}
		}
		if(!tab[i] && !tab[j]){
			//We automatically joink a fem
			int nf = find(nxt_f[j], nxt_f);
			if(nf <= n){
				usd[nf]=1;
				i=j;
				continue;
			}
			else{
				return 0;
			}
		}
		//We hae male-female, nothing happens
		i=j+1;
	}
	return 1;
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n >> M;
	string s;
	while(M--){
		string t; int k;
		cin >> t >> k;
		while(k--){
			s+=t;
		}
	}
	for(char t : s){
		m+=t=='M';
		f+=t=='F';
	}
	if(m > n){
		cout << "-1\n";
		return 0;
	}
	n*=2;
	for(int i = 1; i <= n; i++){
		tab[i] = s[i-1]=='F';
	}

	int nf = n+1, nm = n+1;
	for(int i = n; i >= 1; i--){
		n0_f[i] = nf;
		n0_m[i] = nm;
		if(tab[i]) nf=i;  
		else nm=i;  
	}
	//Motha fucka
	int p = 0, k = n;
	while(p <= k){
		int s = (p+k)/2;
		if(test(s)){
			k=s-1;
		}
		else{
			p=s+1;
		}
	}
	cout << p << '\n';
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 14
Accepted

Test #1:

score: 14
Accepted
time: 0ms
memory: 3604kb

input:

10
1
FMFFFFFFMFFFMMMMMFMM 1

output:

5

result:

ok single line: '5'

Test #2:

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

input:

10
1
FFMFMMFFFFMMMFMMMMFF 1

output:

3

result:

ok single line: '3'

Test #3:

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

input:

10
1
MFMMFFFMMFFMMMMFFFFF 1

output:

0

result:

ok single line: '0'

Test #4:

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

input:

10
1
FMFMFFMFMFMMFFMFMFMM 1

output:

1

result:

ok single line: '1'

Test #5:

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

input:

10
1
MFFFMFMMMMMMMMMFMFFM 1

output:

-1

result:

ok single line: '-1'

Test #6:

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

input:

10
1
FFFFFFFMMFMFMMMMFFMF 1

output:

2

result:

ok single line: '2'

Test #7:

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

input:

10
1
FMFFFFFMMMFFFMMMFMMF 1

output:

2

result:

ok single line: '2'

Test #8:

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

input:

10
1
MFFMMMMMFFFFMMFFMMFF 1

output:

0

result:

ok single line: '0'

Test #9:

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

input:

10
1
MMMMMMFMFMMMFFMFMFMM 1

output:

-1

result:

ok single line: '-1'

Test #10:

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

input:

10
1
FFFFFFFFFFFFFFFFFFFF 1

output:

0

result:

ok single line: '0'

Test #11:

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

input:

10
1
MMMMMMMMMMMMMMMMMMMM 1

output:

-1

result:

ok single line: '-1'

Test #12:

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

input:

10
1
FFFFFFFFFFFFFFFMMMMM 1

output:

4

result:

ok single line: '4'

Test #13:

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

input:

10
1
FFFFFFFFFFMMMMMMMMMM 1

output:

9

result:

ok single line: '9'

Test #14:

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

input:

10
1
FMFMFMMFFFMFFMMMFMMF 1

output:

2

result:

ok single line: '2'

Test #15:

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

input:

10
1
FFFFFFFFFFFFFMMFMMMF 1

output:

2

result:

ok single line: '2'

Test #16:

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

input:

10
1
MMMMFMFFMFMFFFFMMFFM 1

output:

0

result:

ok single line: '0'

Test #17:

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

input:

10
1
MFMMFFFMMMMFFMMFFFMF 1

output:

0

result:

ok single line: '0'

Test #18:

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

input:

10
1
MFFFFMFMFFMMFMMFMFFM 1

output:

1

result:

ok single line: '1'

Test #19:

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

input:

10
1
MFFFFFFFFFFFFMFFFFFF 1

output:

0

result:

ok single line: '0'

Test #20:

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

input:

10
1
FFFMFFMFMMFFMMMMMFMF 1

output:

3

result:

ok single line: '3'

Test #21:

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

input:

10
1
MMFMFFFMFMMMFFMFMFFM 1

output:

0

result:

ok single line: '0'

Test #22:

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

input:

10
1
FFFFFFFFFFFMFFFFMFMM 1

output:

1

result:

ok single line: '1'

Subtask #2:

score: 22
Accepted

Dependency #1:

100%
Accepted

Test #23:

score: 22
Accepted
time: 23ms
memory: 7200kb

input:

100000
1
FFFFMMMFMFFMMMFFMFFFMFFFFFMMFFMMFMFFMFFFFMFFMMFFFFFFFFMFFMFMFMFFMFMFFFFFFMFMMFMMFMFFFFFFFFFMFMFFMFFMMFMFFFMFMFFFFFFMFMFFFFMFFMFMFMFFFMFFMFFFFFMMMFFMMFFFFFFFFFFFFMFFFFMFFFFFMMMFMFFFMMFFFMFMFFMMFFFFFMFFMFFFMFFFMFFMFFMFFFMFFMMFFFFFFFMFFFFFFFFFMFFFFFFFFFFFFFFFMMFFFFFMMMMFFFFMFMMFFMFFFFFMMMMFFFF...

output:

31813

result:

ok single line: '31813'

Test #24:

score: 0
Accepted
time: 30ms
memory: 7200kb

input:

100000
1
FMFFFMFMFFMMFFMMFFMMMFMMMFMMFFMMFFFFFFMFFMFFFFMFMFFMMFMFMMMFMFMFFFMFFFFFMFFFMFFMFMMMMMFMMFMFMMMFMFMMMFFMFMMFFMMFFFMMMFFFFFFMFFFMFFMMFFFFMFFMFFFFFMMFMFFFFMMFFMMFFMMFMMMMFMFFMMMFFMMMFFMFMFFMFMFFFFMFFFFMFFMFFFFFMMMFFFMFFMFFFFFFMFFFFFMMMFMFMFFMMMMMMFFMFMMFFFFFFFMFMFFFMMFMMFMFFMMFFMMFFMMFFMMFFMM...

output:

13113

result:

ok single line: '13113'

Test #25:

score: 0
Accepted
time: 30ms
memory: 7196kb

input:

100000
1
FFFFFFMFMFFFMFFFFFFFFFFFMMMFFFMFMMFMFFFMFMMFFFMFFMFFFFMFFFMMFMMFFMFMFFMMMFFMMFFFFFMMFMFFMFMMMFFFFFFFMMFFFFFFFFFFFMFMMFMMFFFMFFFFFFFFFFFFMFMFFFFFMMFFMFMFFFFFFFFFFFMMFFFFMFFFFFMMFFFFMFMMMMFFMFMFMMFFMFMFFFMFMFMFFMFFMMFFFFFFFMFFMMFFMFMFFFFMMMMMFFFMMFFMFFFFFMFFFFFFFFFFFFFFFFFMFFMFFFFFMFFFMFFFFFF...

output:

2798

result:

ok single line: '2798'

Test #26:

score: 0
Accepted
time: 10ms
memory: 7476kb

input:

100000
1
FFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...

output:

6652

result:

ok single line: '6652'

Test #27:

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

input:

100000
1
MMMMFMMMMMMMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMFMMMMFFMMMMMMMMMMMMMMMFMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMFMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMFMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMM...

output:

-1

result:

ok single line: '-1'

Test #28:

score: 0
Accepted
time: 26ms
memory: 7232kb

input:

100000
1
FFFFFFFFMMFFFMMFFMFMFFFFMFMFMMMFFFFFMFMMMMFMFFMMFMFMMFFFFMFMFFFFFMFFFFFFMMFMMMMMFFFMFMFFFMMMMMMMFMMMFFFMFFFMMFMMFMFFMFFMMMFFFFMMFMMFFMFFFFMMFFFFFFFMFMFFFFFFMMMFMMFFMFMFMFMFFFFFMMFMMFMFMMFMFFMFFMFFFFFFMFFMFFFFFFFMMMFMFMMMMFFFFFFFMMFMMFFMMMFMFFFFFMMFFMFMMMMFFFMFMFMFMFFFMMMMFMMFMFFMFMMMFFMMMMM...

output:

0

result:

ok single line: '0'

Test #29:

score: 0
Accepted
time: 30ms
memory: 7148kb

input:

100000
1
FFFFFMMMFFMFFMFFFFFFMFFMFMFMMMFFFMMFFFFFFMFMFFMFFMFFFFFFFFMFMMFMFFFFFFFFFMFMFFFFFFMFFFFFMFFMFFMMMFFFFFMMMFFMFFMFMMFFFFFMFFMMFFFMMFFFFFFMMMFFFMFFMMMFFMFFFFFFMFFFMMMFFFFMFFMFFFFFFFFMFMFFMFFFFFFMFFFFFFMMFFMFMFFFFFFMFFFFMMFMFFFFFMFFMMFFMFMFFFFFFFMMFMMMFFFFFFMFFMMMFFFFFFFMFFMFFFFMMFFFFMMFFFMFMMF...

output:

0

result:

ok single line: '0'

Test #30:

score: 0
Accepted
time: 25ms
memory: 7304kb

input:

100000
1
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...

output:

39879

result:

ok single line: '39879'

Test #31:

score: 0
Accepted
time: 32ms
memory: 7196kb

input:

100000
1
FMFFMMMFMFMMMMMFMMMMMFMFMMFFMMMMMFMMMMMMMFMFFMMMFMFFFMMFFMMMFMMMMMFMMMMMMMMMMMMMMMMMFMFMFMFFFMMMFMMFFFMMMFMMFMMMMMMFMMFMMMMMMFMMMMFMMMMMMFMMFMMMFMMFMMFMMMFMFFMMMMMMMFMMMFMMMMMFMFMMFFMMFFFFFMMMMFMMFMMMMMMMFFMFFFMMMMMFMMMMMFFMMMFMFMMMFMMMMMMMMMFMMFMMMMFMMFMMMMMMMMMMMFMMMMFMFMMFMFMFMFMFMFFMMFM...

output:

0

result:

ok single line: '0'

Test #32:

score: 0
Accepted
time: 31ms
memory: 7284kb

input:

100000
1
MFMFFFFFFFFFFMFFFFFFFFMFFFFFFMMFMFFMFMFFFMFFFFMFFMFFFFFFMFFFFFFMFMFFMMFFMFMMMMMFMFFFFMFMFFMFFFMMMMFMFMMFFMMMFFFFFFMFFFMFMFFMFMFMFFFFFFFFFMFFMFMFFFFFMFMFFMFFFFMFFFFFFMFFFFFFFFFMFFMFFFMMFMFFFFMFFMMFFFFMMFFFMFFMFMFFMFMMFFMFMFFMFMFFFFFMMFFMFFMFFFFFMMFFMMFFMMFMMFFFFFFFFFFFFFFFMFFFFFMMFFFFFFMMMMF...

output:

16534

result:

ok single line: '16534'

Test #33:

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

input:

100000
1
MMMMMMMMMMMMMFMMMMMMMMFFFFMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMFMMMFMMMMMMMMMMMMMFFMMMMMMFMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMFMMMMMFMMFMMMFMMMMMMMMMFMMMMMMFMMMMMMMMMMMFMFMFMMMMMMMMMMMMMMFMMMMMMMFMMMMMMMMMMMMMMMMMMMMMMFMMMMMMMMMMMMMMMMMMFMMMFMMMMMMMMMMMMMMMM...

output:

-1

result:

ok single line: '-1'

Test #34:

score: 0
Accepted
time: 16ms
memory: 7248kb

input:

100000
1
FFFFFFFFMFFFFMFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFMFFMFMFFFFMFMFFFFFMFFFFFFFMFFMFMFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFMFMFFFFFFFFFFFFFFFFMFFFFFMFFFFFFFFFFFFMFFFFFFFFFFMFFMFFMFMFMFFFMFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFMFMFFMFMFFFFFFFFMFFFMFFFFFFFMMFFFMFFFFFFFFMMMFMMFFFFFFMMFFFFFFFFFFFF...

output:

1

result:

ok single line: '1'

Test #35:

score: 0
Accepted
time: 35ms
memory: 7148kb

input:

100000
1
MMMFFMFFMFFFMFMFFMMMFFFFMFMMMMFMMMFMFMMFMMFFMFFMMFMFMMMFFFMMFMMMFMMFFFMFMFMMMMFMMMMMFFFFFMFMMFMFFFFFFFMFMFFFMFMFFFFMFMFFFFMMFMMMFMMFMMFMFFMFMMMFFFFMFMMFMMMMMFMFMFFMMFFMFFMFFMFMMMFFMMFMMMFFMMMMMFMFMMMMFMMFFFMMMMMFMFMFFMFFMFMMFFMMFMMFMMFFMMFMMFFMMFMFMMMFFFMMFMFMMFFMMMFMMFMFMMFMFMMFFMMMMMMMMMF...

output:

47

result:

ok single line: '47'

Test #36:

score: 0
Accepted
time: 35ms
memory: 7268kb

input:

100000
1
MMMMFMFFMFMMFFMFFMMMFFFMFFMMMMFFFFFMMFFFFMMMFMMFFFMMFMFMMMMFMMFMMMMMFFFFMMFFMFMMFFMFFMFMFMMFFFFMMFFFMFMMFMMFMMFMFFMFFMMMMMMFMMFMFMMFFMMMFFFFMMFMFFFFMMMMMFMMMMFFMMFFFFMFMFMMFFFMFFMMFMMFMFMMFFFMMMMFMMMMFFFFFFMMMFFFMMMFMMFMFFFMFMMFFFFFFMFFFMFMFFMFMFMMMFFMMMMFFMMFMMMMFMFMFFMMMMFFMFFMFMFFFFFFFFF...

output:

29

result:

ok single line: '29'

Test #37:

score: 0
Accepted
time: 10ms
memory: 7248kb

input:

100000
1
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFMFFFFFMFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFFFFMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFFFMFFF...

output:

0

result:

ok single line: '0'

Test #38:

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

input:

100000
1
FFFFMMMFFFMFMFMFMMFFFFMMMFMFFFFFMFMMFMMMMFFFMMFMMFFMFFFFMFMFFFFMMFMMFFMFMMMFFFMMFMFFMFMFMFMFMFFMFMFFMMMFFFFMMMFFMFFFFMFFFMFMMMFFFFMFFFFMMFMFMFMFMMMMFMFMMMFMMMMFMFFFFFFMMFMMFFMFMFMFMMFMFMFFFFMMMFMMMFMMFFFMMFFMFMFMFFFMMMMFMMMFMFFMMFFMFMMFFFMFFFMFFFMFMMFMFFMMMMFMMMFFMFFFMFMMMMFFMMFMFMMMFFMFFFM...

output:

-1

result:

ok single line: '-1'

Test #39:

score: 0
Accepted
time: 25ms
memory: 7308kb

input:

100000
1
FFMMFMMMMMMFMMMFMMMMFFMMMFFMMMFFFMMFFFMMFMFMMMFFFFMFMMMMFMFMFFMMMFMMMMMFFMMFMFMMFMMMMMMMMMMMFMMMFFMMMMMFMMMMFMFFMMMMMMMFFMMMFFMMMFMMMMFMMMFFMMMFMFMMMFMMMMFMMMMFMMFFMMFMMFMMMMMMFFFMMMMMFMMFFMMMMMFMMFMMFFMMFMMMMMMMMMFMMMMFFMFMFMFMMMMMFMMMFFMFMMMFFMMMFMMMFMMMMFFMMMFFMMFMFFMMFFFMFMFMMMMMMMMMFMF...

output:

0

result:

ok single line: '0'

Test #40:

score: 0
Accepted
time: 23ms
memory: 7228kb

input:

100000
1
MFFFFFFFFFFFFFFMMFFFMFFFFFFFFFFFFFFFMFFFFFMFFFFFFFFFFFFFFFFMFFFFFFFFFFFFFFFFFFFFMFFFFFFFFFFFMFMFMFFFFFFMMFFFFMFFFFFFFFMFFMFMMFFFFFFFMFMMFFFFFMMFMFMMFFFFFFFFFFFFFFFFMFFFFFFFMFFFFFMFFMFFFFFFFFFMMFFFFFFFFFFFFFMFFFFFMFFMFFFFFFFMFFMFFFFMFMMFMFFMFFFMFFMFFFMFFFFFFMFMFFFFFFFFFFFMFFFFFFFFFFFMFFFFFFF...

output:

4355

result:

ok single line: '4355'

Subtask #3:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #41:

score: 0
Wrong Answer
time: 1ms
memory: 3832kb

input:

1000000000000000000
100000
M 9816839753426
F 32891239202155
M 3269965263224
F 2229727361723
M 30485569651326
F 21959175763651
M 2701631477059
F 8659750955926
M 9425320424984
F 2510850084526
M 3240680154707
F 27272737860189
M 16804398749196
F 37559052071696
M 21024350278786
F 27634028774163
M 7449319...

output:

0

result:

wrong answer 1st lines differ - expected: '-1', found: '0'