QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#665127#5543. The Only ModetemmieAC ✓975ms33052kbC++172.7kb2024-10-22 04:25:262024-10-22 04:25:27

Judging History

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

  • [2024-10-22 04:25:27]
  • 评测
  • 测评结果:AC
  • 用时:975ms
  • 内存:33052kb
  • [2024-10-22 04:25:26]
  • 提交

answer

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#define ALL(x) x.begin(), x.end()
#define SZ(x) ((int)x.size())
#define fastio ios::sync_with_stdio(0), cin.tie(0);
using namespace std;

#ifdef LOCAL
#define cout cout << "\033[0;32m"
#define cerr cerr << "\033[0;31m"
#define endl "\n" << "\033[0m"
#else
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,avx2,sse,sse2,sse3,sse4,popcnt")
#define endl "\n"
#endif

const int MAX_N = 2e5+100;
const int INF = 2e9;
const int P = 1e5+10;

// declare
int n;
vector<int> v;
vector<int> d[4][4];

struct BinaryIndexTree{
	vector<int> BIT;
	vector<int> backup;

	BinaryIndexTree(int n){
		BIT.assign(n, INF);
		return;
	}

	void update(int pos, int val){
		pos += P;
		backup.push_back(pos);
		for (int i=pos ; i<SZ(BIT) ; i+=i&-i) BIT[i] = min(BIT[i], val);
	}

	int query(int pos){
		pos += P;
		int ret = INF;
		for (int i=pos ; i ; i-=i&-i) ret = min(ret, BIT[i]);
		return ret;
	}

	void reset(){
		for (auto pos : backup) for (int i=pos ; i<SZ(BIT) ; i+=i&-i) BIT[i] = INF;
		backup.clear();
	}
};

/*
1. 先根據一維遞增排序
2. 在根據二維遞減排序
*/

void solve1(){

	// init
	for (int i=0 ; i<4 ; i++){
		for (int j=0 ; j<4 ; j++){
			d[i][j].resize(MAX_N);
		}
	}

	// input
	cin >> n;
	v.resize(n);
	for (int i=0 ; i<n ; i++) cin >> v[i];

	// process
	for (int i=0 ; i<n ; i++) for (int j=0 ; j<4 ; j++) for (int k=0 ; k<4 ; k++){
		if (v[i]==j) d[j][k][i]++;
		if (v[i]==k) d[j][k][i]--;
	}
	for (int i=1 ; i<n ; i++) for (int j=0 ; j<4 ; j++) for (int k=0 ; k<4 ; k++) d[j][k][i] += d[j][k][i-1];

	// 解決三維偏序 [l, r)
	BinaryIndexTree BIT(MAX_N);
	auto CDQ = [&](auto self, int l, int r, vector<vector<int>> &v){
		if (r-l<=1) return 0;
		int mid = (l+r)/2;
		int ans = max(self(self, l, mid, v), self(self, mid, r, v));

		vector<vector<int>> tmp;
		int i, j;
		for (i=l, j=mid ; j<r ; j++){
			while (i<mid && v[i][1]<v[j][1]){
				BIT.update(v[i][2], v[i][3]);
				tmp.push_back(v[i]);
				i++;
			}
			ans = max(ans, v[j][3]-BIT.query(v[j][2]-1));
			tmp.push_back(v[j]);
		}
		BIT.reset();
		while (i<mid){
			tmp.push_back(v[i]);
			i++;
		}
		copy(ALL(tmp), v.begin()+l);
		return ans;
	};

	for (int i=0 ; i<4 ; i++){
		vector<vector<int>> v(n);
		v.push_back({0, 0, 0, -1});
		for (int j=0 ; j<n ; j++){
			for (int k=0 ; k<4 ; k++){
				if (i==k) continue;
				v[j].push_back(d[i][k][j]);
			}
			v[j].push_back(j);
		}
		
		sort(v.begin(), v.end(), [](auto a, auto b){
			if (a[0]==b[0]) return a[1]>b[1];
			return a[0]<b[0];
		});
		int ans = CDQ(CDQ, 0, n+1, v);
		cout << ans << " ";
	}
	cout << endl;
	
    return;
}

signed main(){

    fastio;

    int t = 1;
    while (t--){
        solve1();
    }

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 6ms
memory: 16580kb

input:

7
1 2 2 0 3 0 3

output:

4 1 5 3 

result:

ok single line: '4 1 5 3 '

Test #2:

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

input:

12
2 0 1 0 2 1 1 0 2 3 3 3

output:

4 9 1 9 

result:

ok single line: '4 9 1 9 '

Test #3:

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

input:

2
0 2

output:

1 0 1 0 

result:

ok single line: '1 0 1 0 '

Test #4:

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

input:

12
3 0 2 2 1 0 2 1 3 3 2 3

output:

1 5 11 8 

result:

ok single line: '1 5 11 8 '

Test #5:

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

input:

1
1

output:

0 1 0 0 

result:

ok single line: '0 1 0 0 '

Test #6:

score: 0
Accepted
time: 21ms
memory: 17124kb

input:

4207
3 1 0 3 2 0 3 1 1 1 1 3 0 1 1 0 2 2 3 0 1 1 0 1 0 2 0 1 0 0 3 3 1 0 1 3 3 0 2 0 2 0 1 0 2 3 2 3 0 0 0 0 1 2 1 2 0 2 2 0 3 3 2 2 0 2 2 0 3 0 1 3 1 1 0 2 3 0 1 2 1 2 0 0 1 1 0 3 3 2 0 2 1 3 0 1 0 3 0 0 0 2 2 2 0 1 1 0 3 1 1 3 3 2 2 1 3 3 1 3 2 0 2 3 2 2 1 0 2 3 0 1 0 0 1 1 1 3 3 1 3 3 3 0 0 0 3 2...

output:

2330 1520 4207 1359 

result:

ok single line: '2330 1520 4207 1359 '

Test #7:

score: 0
Accepted
time: 676ms
memory: 30068kb

input:

89925
0 0 0 3 0 3 0 2 3 2 3 1 0 0 0 2 2 1 3 3 0 0 1 0 0 3 0 1 0 0 1 1 0 0 1 2 1 3 1 2 1 2 2 1 0 2 2 3 0 0 1 0 2 3 2 3 0 0 1 0 0 1 2 1 3 0 0 0 2 1 1 0 1 3 2 2 0 0 2 3 2 3 3 1 3 3 0 2 0 2 2 0 2 1 3 0 1 1 0 0 1 0 3 1 2 2 2 0 2 0 2 3 2 0 0 2 3 3 1 0 1 2 2 2 1 2 0 0 3 2 3 0 1 1 3 3 0 0 0 3 0 2 0 0 2 3 1 ...

output:

89925 49888 75725 38162 

result:

ok single line: '89925 49888 75725 38162 '

Test #8:

score: 0
Accepted
time: 433ms
memory: 24992kb

input:

64937
1 1 0 2 1 1 3 1 1 1 2 0 3 1 1 2 1 2 2 1 0 2 1 1 1 1 1 0 3 1 0 2 1 0 0 0 0 2 1 2 1 2 2 1 2 3 2 1 2 1 3 0 1 3 0 0 1 3 1 2 2 2 0 3 3 1 3 0 3 3 2 0 1 1 2 0 3 3 3 2 1 0 1 0 1 3 0 0 2 1 0 3 3 1 2 3 2 1 1 0 0 3 1 1 2 1 0 2 1 0 0 1 1 3 0 1 2 1 3 2 0 3 1 2 1 2 0 0 0 1 1 2 3 3 2 1 1 1 2 1 3 1 2 2 2 0 1 ...

output:

64937 61901 51387 63870 

result:

ok single line: '64937 61901 51387 63870 '

Test #9:

score: 0
Accepted
time: 539ms
memory: 29092kb

input:

73423
1 2 2 0 0 0 0 2 1 2 1 2 1 3 1 3 3 0 1 2 2 0 0 0 3 2 1 1 0 3 0 2 1 3 1 1 2 3 0 1 2 1 0 0 0 3 3 0 3 2 3 3 1 1 3 2 0 0 0 3 2 0 0 2 3 3 3 3 3 2 3 2 2 2 3 3 0 1 1 2 2 2 1 2 2 1 1 2 1 2 2 3 0 3 0 2 2 2 1 2 1 1 2 3 0 1 3 2 0 3 3 3 0 2 2 2 3 1 0 1 0 1 1 3 0 0 2 1 1 3 1 3 3 2 0 2 2 1 1 0 1 0 2 3 1 2 3 ...

output:

36577 18616 60210 73423 

result:

ok single line: '36577 18616 60210 73423 '

Test #10:

score: 0
Accepted
time: 630ms
memory: 29780kb

input:

82517
2 1 1 0 2 0 3 1 3 1 3 3 2 2 3 0 3 2 2 0 2 1 0 2 2 3 2 0 1 0 1 2 2 1 1 1 3 2 2 0 1 0 0 3 3 1 1 0 3 1 3 1 2 3 3 3 3 3 2 1 3 1 3 0 2 0 2 0 2 2 2 2 2 1 2 1 3 3 2 3 2 3 0 2 0 1 0 0 3 2 1 1 0 1 2 1 1 0 1 3 1 3 3 2 2 3 0 2 1 3 2 1 0 1 2 3 2 2 3 3 1 0 2 0 3 2 3 0 1 2 0 3 3 0 2 1 1 3 3 2 2 0 2 2 1 1 2 ...

output:

50863 68187 40176 82517 

result:

ok single line: '50863 68187 40176 82517 '

Test #11:

score: 0
Accepted
time: 633ms
memory: 28312kb

input:

79392
0 2 2 2 0 3 2 3 1 1 1 0 0 3 1 3 3 0 2 2 0 0 0 2 1 0 2 2 2 1 2 3 2 0 3 3 3 2 0 1 0 1 1 1 0 1 0 1 0 2 3 3 0 1 2 3 0 1 0 1 0 1 2 2 1 3 0 0 1 3 1 2 2 1 0 0 2 1 0 0 2 2 3 1 3 0 3 2 0 0 0 0 3 3 0 0 2 2 0 2 0 2 3 1 0 2 2 1 2 2 0 3 3 3 2 1 3 1 1 1 1 2 0 0 1 1 1 0 1 1 1 3 3 0 2 3 1 1 0 1 2 3 1 3 3 0 0 ...

output:

68113 34911 26794 79392 

result:

ok single line: '68113 34911 26794 79392 '

Test #12:

score: 0
Accepted
time: 791ms
memory: 33052kb

input:

100000
2 0 0 1 0 2 3 3 0 2 1 2 0 2 0 3 0 0 2 0 1 1 0 1 1 1 1 0 2 2 0 1 0 1 0 0 0 3 1 0 3 0 1 1 1 3 1 0 1 3 1 1 1 0 1 3 0 1 1 0 1 3 0 0 0 0 0 0 0 1 0 0 1 3 1 3 0 1 0 0 2 1 1 2 2 0 3 3 2 1 1 0 0 1 1 2 0 1 2 0 3 3 1 1 1 0 3 3 0 1 3 0 1 0 2 1 3 3 2 3 2 0 2 3 0 2 2 2 0 1 0 0 1 0 2 1 1 1 2 1 2 1 1 0 3 1 1...

output:

448 100000 52 33 

result:

ok single line: '448 100000 52 33 '

Test #13:

score: 0
Accepted
time: 975ms
memory: 30480kb

input:

100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 3 0 0 0 0 0 3 0 0 0 0 0...

output:

100000 0 0 11 

result:

ok single line: '100000 0 0 11 '

Test #14:

score: 0
Accepted
time: 845ms
memory: 30216kb

input:

100000
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2...

output:

0 0 100000 0 

result:

ok single line: '0 0 100000 0 '

Test #15:

score: 0
Accepted
time: 967ms
memory: 30180kb

input:

100000
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2...

output:

0 0 33423 100000 

result:

ok single line: '0 0 33423 100000 '

Test #16:

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

input:

2
2 0

output:

1 0 1 0 

result:

ok single line: '1 0 1 0 '

Test #17:

score: 0
Accepted
time: 775ms
memory: 30048kb

input:

100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

59937 100000 30184 50197 

result:

ok single line: '59937 100000 30184 50197 '

Test #18:

score: 0
Accepted
time: 722ms
memory: 29880kb

input:

100000
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2...

output:

1 3 100000 1 

result:

ok single line: '1 3 100000 1 '

Test #19:

score: 0
Accepted
time: 672ms
memory: 31020kb

input:

100000
2 2 0 3 1 3 1 1 1 2 2 3 1 0 1 3 1 3 3 2 2 2 0 3 2 0 2 0 1 2 0 0 1 0 3 0 1 2 0 3 0 2 2 3 1 3 0 0 0 0 0 2 1 0 2 3 2 2 3 1 0 2 0 0 2 1 3 2 3 2 2 2 3 0 2 2 2 1 1 2 1 3 1 1 0 2 3 0 1 2 2 3 2 0 2 2 1 2 0 2 3 0 3 2 1 1 0 2 3 3 1 0 0 2 3 0 0 3 2 0 1 0 2 1 2 2 3 1 2 0 1 0 1 0 3 3 2 2 2 1 3 2 0 2 1 0 2...

output:

99993 99996 99997 99997 

result:

ok single line: '99993 99996 99997 99997 '

Test #20:

score: 0
Accepted
time: 888ms
memory: 32612kb

input:

100000
2 1 0 1 1 1 3 2 1 0 2 1 1 1 1 1 3 0 3 1 1 1 1 1 1 2 3 1 0 2 1 1 2 3 1 0 1 3 1 1 3 1 3 3 2 1 2 1 1 1 1 1 1 1 1 1 1 1 2 3 1 0 3 1 1 3 1 1 1 2 3 2 3 1 1 3 0 3 0 1 2 2 3 1 3 1 0 2 3 1 1 1 3 1 1 0 1 2 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 0 3 3 2 0 3 1 1 0 1 2 3 3 1 1 1 1 1 3 1 1 1 3 0 2 1...

output:

69 100000 42 181 

result:

ok single line: '69 100000 42 181 '

Test #21:

score: 0
Accepted
time: 701ms
memory: 31628kb

input:

100000
2 2 0 2 1 2 2 0 0 0 3 0 2 1 0 2 0 0 3 0 0 1 1 0 2 1 3 0 0 1 1 2 1 2 0 2 2 2 1 2 2 2 2 0 1 0 0 2 3 1 2 2 0 1 3 2 1 1 0 0 0 1 1 1 2 1 2 0 0 2 3 2 1 2 1 1 2 2 1 3 2 0 2 1 0 1 2 0 1 2 3 2 2 0 3 2 3 1 2 0 1 2 2 0 2 1 1 1 2 0 2 1 2 2 0 3 1 3 2 0 1 1 2 0 2 0 2 2 2 0 0 1 1 1 2 3 2 1 1 3 1 1 2 1 1 3 3...

output:

99998 99997 99265 50 

result:

ok single line: '99998 99997 99265 50 '

Test #22:

score: 0
Accepted
time: 689ms
memory: 29688kb

input:

100000
1 1 3 0 0 3 1 0 1 0 1 2 2 3 0 3 3 2 1 1 0 2 0 1 2 0 3 0 2 3 1 1 3 1 3 2 1 0 0 1 3 0 0 3 3 3 3 3 1 0 1 1 1 0 1 2 1 1 0 1 1 0 1 3 3 0 2 1 3 1 1 2 2 2 2 1 0 1 1 1 3 2 3 1 1 3 0 3 0 3 2 3 2 3 0 0 1 3 3 2 0 1 1 1 3 2 0 1 3 0 1 2 2 2 1 3 1 1 1 1 1 0 2 3 3 2 3 3 3 2 2 3 1 2 0 1 1 3 1 1 3 3 2 2 1 2 1...

output:

99902 99960 99996 99996 

result:

ok single line: '99902 99960 99996 99996 '

Test #23:

score: 0
Accepted
time: 484ms
memory: 31548kb

input:

100000
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2...

output:

99997 99997 99997 99997 

result:

ok single line: '99997 99997 99997 99997 '

Test #24:

score: 0
Accepted
time: 782ms
memory: 29516kb

input:

100000
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3...

output:

49999 74998 74998 49999 

result:

ok single line: '49999 74998 74998 49999 '

Test #25:

score: 0
Accepted
time: 791ms
memory: 30480kb

input:

100000
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3...

output:

99038 98842 99667 74993 

result:

ok single line: '99038 98842 99667 74993 '

Test #26:

score: 0
Accepted
time: 713ms
memory: 30640kb

input:

100000
1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0 2 3 0 1 2 0...

output:

99997 1 100000 1 

result:

ok single line: '99997 1 100000 1 '

Test #27:

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

input:

3
3 1 3

output:

0 1 0 3 

result:

ok single line: '0 1 0 3 '

Test #28:

score: 0
Accepted
time: 743ms
memory: 30340kb

input:

100000
2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0 0 3 3 0 2 1 2 1 0 2 2 0...

output:

99999 4 99999 5 

result:

ok single line: '99999 4 99999 5 '

Test #29:

score: 0
Accepted
time: 874ms
memory: 30132kb

input:

100000
2 2 2 0 0 2 2 3 2 0 1 1 1 2 2 3 2 2 2 2 2 0 1 2 1 1 3 3 3 0 2 1 2 1 0 3 0 3 3 2 3 0 3 3 0 3 3 3 1 2 1 1 2 1 2 2 0 2 1 2 3 1 2 2 2 1 1 3 3 3 2 2 0 1 1 0 0 3 2 2 1 1 1 3 2 2 3 1 2 1 0 2 0 2 2 3 3 2 1 0 2 3 0 0 1 0 0 3 0 1 2 2 1 0 0 0 3 1 1 1 1 0 0 2 2 2 1 1 2 3 2 3 0 0 3 2 0 3 0 1 0 3 0 0 0 1 0...

output:

31701 90659 88119 100000 

result:

ok single line: '31701 90659 88119 100000 '

Test #30:

score: 0
Accepted
time: 871ms
memory: 29676kb

input:

100000
0 1 3 2 2 0 1 0 2 0 1 2 1 1 1 3 0 2 1 1 3 2 3 2 0 3 2 2 2 3 3 1 0 0 1 3 0 2 3 1 0 0 1 1 3 0 2 0 2 2 2 0 2 1 1 0 2 3 0 3 0 2 0 2 3 0 2 1 2 3 1 0 2 1 0 1 2 2 3 1 3 1 0 1 1 2 0 1 2 2 0 1 1 3 3 0 0 1 3 1 1 0 0 3 2 0 1 0 1 1 3 2 1 3 2 3 1 3 2 2 2 3 1 0 3 0 1 0 3 2 0 3 2 1 3 3 2 3 1 0 1 1 3 3 0 1 3...

output:

62661 100000 86884 68086 

result:

ok single line: '62661 100000 86884 68086 '

Test #31:

score: 0
Accepted
time: 794ms
memory: 30168kb

input:

100000
2 0 3 2 2 1 1 0 0 3 1 2 1 3 1 3 3 0 0 3 2 2 0 0 3 0 1 3 3 2 1 3 1 1 0 1 1 2 2 1 0 3 2 2 2 0 1 3 2 0 1 2 2 3 2 0 1 3 2 3 0 2 0 2 3 3 2 2 2 1 3 0 1 0 3 0 1 2 2 2 1 1 0 0 0 3 1 2 2 0 3 0 2 1 2 2 1 0 0 0 2 0 1 3 1 0 0 2 0 0 3 2 2 2 1 3 3 3 2 2 0 0 3 1 1 2 0 3 3 1 2 1 1 0 0 3 1 2 0 1 2 0 0 0 3 2 3...

output:

77511 28943 63391 100000 

result:

ok single line: '77511 28943 63391 100000 '

Test #32:

score: 0
Accepted
time: 712ms
memory: 30084kb

input:

100000
1 2 3 1 0 2 0 0 0 3 3 0 2 1 2 0 0 3 2 2 3 0 1 3 3 3 1 2 0 2 3 0 2 1 1 2 0 0 3 3 2 1 1 3 2 0 0 3 0 0 0 3 3 1 1 1 1 0 0 3 1 2 1 1 0 2 3 3 0 2 0 0 2 3 0 0 0 3 2 2 2 1 1 3 2 0 3 3 3 0 0 1 0 1 1 0 2 3 2 0 1 2 2 0 1 3 1 2 3 1 3 1 1 2 0 1 3 1 0 1 2 3 2 3 0 1 3 3 1 1 2 2 3 0 2 0 0 1 3 3 2 3 0 3 2 2 3...

output:

81571 73712 100000 99871 

result:

ok single line: '81571 73712 100000 99871 '

Test #33:

score: 0
Accepted
time: 868ms
memory: 30168kb

input:

100000
3 0 1 0 1 0 3 1 2 0 2 3 2 3 1 0 1 0 3 0 1 0 0 1 0 0 1 1 0 2 1 2 3 0 1 2 2 1 0 2 1 1 0 1 3 1 3 0 0 1 2 1 2 3 3 3 0 3 0 0 3 0 1 0 3 1 1 1 1 1 1 3 3 3 3 0 0 0 1 1 0 1 1 3 3 2 0 1 1 1 3 0 0 3 3 3 2 3 3 2 2 1 0 3 1 3 3 1 2 2 3 3 0 3 1 2 0 1 3 3 3 1 1 2 3 2 0 1 2 2 0 2 0 1 1 2 3 1 3 2 2 0 2 0 3 3 2...

output:

27558 100000 48059 95964 

result:

ok single line: '27558 100000 48059 95964 '

Test #34:

score: 0
Accepted
time: 6ms
memory: 16664kb

input:

4
2 1 3 0

output:

1 1 1 1 

result:

ok single line: '1 1 1 1 '

Test #35:

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

input:

10
1 0 1 2 3 0 2 0 1 3

output:

9 5 5 1 

result:

ok single line: '9 5 5 1 '

Test #36:

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

input:

2970
2 2 3 2 3 2 3 1 2 2 1 1 1 3 0 3 1 1 1 3 3 2 1 2 1 3 3 0 1 0 2 0 1 3 3 3 0 3 3 3 1 3 3 1 2 3 2 0 2 2 2 0 2 3 3 2 0 1 1 1 0 3 2 1 0 2 0 0 1 2 0 2 0 2 1 3 3 2 1 1 2 1 3 2 0 0 3 2 2 2 0 0 1 0 3 1 2 1 1 2 0 1 2 3 3 0 2 0 2 0 3 2 2 1 1 1 1 0 2 0 1 0 2 2 1 0 3 0 3 1 2 3 0 0 2 3 2 0 3 3 3 1 2 3 0 2 1 2...

output:

2590 2970 2754 2815 

result:

ok single line: '2590 2970 2754 2815 '

Test #37:

score: 0
Accepted
time: 20ms
memory: 17096kb

input:

3362
2 1 3 3 1 0 1 2 1 3 2 3 1 1 3 2 3 1 0 3 0 0 0 3 0 0 0 2 1 1 3 0 0 1 1 3 3 0 2 0 3 3 2 3 3 1 2 3 0 2 0 2 1 3 2 0 3 0 1 1 2 1 3 0 1 3 3 2 2 3 3 0 2 2 2 0 3 1 3 3 0 3 2 3 1 3 3 1 0 0 3 3 3 2 0 3 1 3 2 3 2 1 3 3 3 1 1 0 1 2 2 2 0 1 0 0 1 1 1 1 3 3 2 0 1 2 3 0 3 2 3 1 3 3 1 1 0 0 3 3 0 3 1 2 3 0 3 0...

output:

1302 2637 1953 3362 

result:

ok single line: '1302 2637 1953 3362 '

Test #38:

score: 0
Accepted
time: 18ms
memory: 17060kb

input:

4523
1 1 2 2 3 3 3 1 1 2 1 0 0 1 3 0 2 1 1 1 1 1 0 0 1 0 1 1 0 0 2 2 3 2 1 2 1 0 3 2 2 0 2 0 1 1 1 0 2 2 3 3 3 2 2 3 1 3 3 2 0 2 1 2 1 3 1 1 2 3 0 2 3 1 2 0 1 0 0 2 2 2 1 1 2 1 3 2 0 0 0 1 0 1 2 2 0 2 1 1 0 3 2 0 0 0 0 1 2 3 3 1 2 0 0 3 3 0 0 1 0 2 1 1 2 0 1 1 2 3 2 3 3 0 3 0 2 3 0 2 1 2 2 3 1 0 3 0...

output:

4523 4511 3922 4475 

result:

ok single line: '4523 4511 3922 4475 '

Test #39:

score: 0
Accepted
time: 18ms
memory: 17084kb

input:

2403
3 1 0 0 2 3 3 3 2 2 1 0 2 3 3 1 3 0 3 2 2 2 2 2 3 1 2 3 0 1 1 2 1 3 1 2 1 0 0 3 2 3 0 3 0 1 1 3 3 0 3 1 0 3 1 0 3 1 0 3 0 1 0 0 1 1 3 2 3 1 3 3 1 3 1 0 0 0 2 1 0 1 1 0 3 0 0 3 0 2 1 2 3 2 3 0 3 0 0 2 1 2 1 3 2 2 1 2 3 1 3 3 3 3 1 1 1 1 2 0 3 3 1 2 0 1 2 2 0 3 1 3 2 0 3 3 0 2 3 0 0 1 0 2 1 3 2 0...

output:

1437 2403 2320 1954 

result:

ok single line: '1437 2403 2320 1954 '