Submission #997883


Source Code Expand

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
 
using namespace std;
using namespace __gnu_pbds;
 
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fbo find_by_order
#define ook order_of_key
 
typedef long long ll;
typedef pair<ll,ll> ii;
typedef vector<int> vi;
typedef long double ld; 
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
typedef set<int>::iterator sit;
typedef map<int,int>::iterator mit;
typedef vector<int>::iterator vit;

const int MX = 100011;
const int LG = 19;
const int INF = 10000000;

struct RMaxQ //Warning : Change query return value manually if needed. INF is the dummy val
{
	int st[LG][MX];
	int initial[MX];
	
	int combine(int a, int b) //warning : change if neccesary
	{
		return max(a,b);
	}
	
	RMaxQ()
	{
		for(int i = 0; i < MX; i++) initial[i] = 0;
	}
	
	void init()
	{
		for(ll j = 0; j < LG; j++)
		{
			for(ll i = 0; i < MX; i++)
			{
				st[j][i] = INF;
				if(i + (1<<j) - 1 < MX)
				{
					if(j == 0) st[j][i] = initial[i];
					else st[j][i] = combine(st[j-1][i], st[j-1][i + (1<<(j-1))]);
				}
			}
		}
	}
	
	int query(int l, int r)
	{
		int k = 31 - __builtin_clz(r-l);
		return combine(st[k][l], st[k][r - (1<<k) + 1]);
	}
};

struct RMinQ //Warning : Change query return value manually if needed. INF is the dummy val
{
	int st[LG][MX];
	int initial[MX];
	
	int combine(int a, int b) //warning : change if neccesary
	{
		return min(a,b);
	}
	
	RMinQ()
	{
		for(int i = 0; i < MX; i++) initial[i] = INF;
	}
	
	void init()
	{
		for(ll j = 0; j < LG; j++)
		{
			for(ll i = 0; i < MX; i++)
			{
				st[j][i] = INF;
				if(i + (1<<j) - 1 < MX)
				{
					if(j == 0) st[j][i] = initial[i];
					else st[j][i] = combine(st[j-1][i], st[j-1][i + (1<<(j-1))]);
				}
			}
		}
	}
	
	int query(int l, int r)
	{
		int k = 31 - __builtin_clz(r-l);
		return combine(st[k][l], st[k][r - (1<<k) + 1]);
	}
};

RMaxQ M;
RMinQ m;

int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0);
	int n; cin>>n;
	for(int i = 0; i < n; i++)
	{
		cin>>M.initial[i];
	}
	string s;
	cin>>s;
	int t = -1;
	for(int i = 0; i < n - 1; i++)
	{
		if(s[i]=='M') t = i;
	}
	t++;
	M.init();
	for(int i = 0; i < n - t; i++)
	{
		m.initial[i] = M.query(i, i+t);
	}
	m.init();
	cout<<m.query(0,n-1)<<'\n';
}

Submission Info

Submission Time
Task B - Compression
User zscoder
Language C++14 (GCC 5.4.1)
Score 400
Code Size 2481 Byte
Status WA
Exec Time 121 ms
Memory 16204 KB

Judge Result

Set Name Sample subtask1 subtask2 All
Score / Max Score 0 / 0 400 / 400 0 / 800 0 / 200
Status
AC × 1
WA × 3
AC × 13
AC × 5
WA × 8
AC × 22
WA × 26
RE × 1
Set Name Test Cases
Sample sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt
subtask1 sample_2.txt, subtask_1.2_1.txt, subtask_1.2_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
subtask2 sample_1.txt, subtask_1.2_1.txt, subtask_1.2_2.txt, subtask_2_1.txt, subtask_2_10.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt
All sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt, 2_1.txt, 2_2.txt, subtask_1.2_1.txt, subtask_1.2_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_10.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_10.txt, subtask_3_11.txt, subtask_3_12.txt, subtask_3_13.txt, subtask_3_14.txt, subtask_3_15.txt, subtask_3_16.txt, subtask_3_17.txt, subtask_3_18.txt, subtask_3_19.txt, subtask_3_2.txt, subtask_3_20.txt, subtask_3_21.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt
Case Name Status Exec Time Memory
2_1.txt AC 22 ms 15872 KB
2_2.txt RE 121 ms 8448 KB
sample_1.txt WA 22 ms 15872 KB
sample_2.txt AC 22 ms 15872 KB
sample_3.txt WA 22 ms 15872 KB
sample_4.txt WA 22 ms 15872 KB
subtask_1.2_1.txt AC 22 ms 15872 KB
subtask_1.2_2.txt AC 22 ms 15872 KB
subtask_1_1.txt AC 30 ms 16076 KB
subtask_1_10.txt AC 30 ms 16076 KB
subtask_1_2.txt AC 30 ms 16076 KB
subtask_1_3.txt AC 30 ms 16076 KB
subtask_1_4.txt AC 29 ms 16000 KB
subtask_1_5.txt AC 23 ms 15872 KB
subtask_1_6.txt AC 30 ms 16076 KB
subtask_1_7.txt AC 22 ms 15872 KB
subtask_1_8.txt AC 30 ms 16076 KB
subtask_1_9.txt AC 30 ms 16076 KB
subtask_2_1.txt WA 30 ms 16076 KB
subtask_2_10.txt WA 30 ms 16076 KB
subtask_2_2.txt WA 30 ms 16076 KB
subtask_2_3.txt WA 30 ms 16076 KB
subtask_2_4.txt WA 30 ms 16076 KB
subtask_2_5.txt AC 22 ms 15872 KB
subtask_2_6.txt AC 22 ms 15872 KB
subtask_2_7.txt AC 22 ms 15872 KB
subtask_2_8.txt WA 30 ms 16128 KB
subtask_2_9.txt WA 24 ms 15872 KB
subtask_3_1.txt WA 30 ms 16076 KB
subtask_3_10.txt WA 30 ms 16076 KB
subtask_3_11.txt WA 30 ms 16076 KB
subtask_3_12.txt WA 30 ms 16076 KB
subtask_3_13.txt WA 30 ms 16076 KB
subtask_3_14.txt WA 30 ms 16076 KB
subtask_3_15.txt WA 30 ms 16076 KB
subtask_3_16.txt WA 30 ms 16076 KB
subtask_3_17.txt AC 30 ms 16076 KB
subtask_3_18.txt AC 30 ms 16204 KB
subtask_3_19.txt AC 31 ms 16076 KB
subtask_3_2.txt WA 30 ms 16076 KB
subtask_3_20.txt AC 30 ms 16076 KB
subtask_3_21.txt AC 30 ms 16076 KB
subtask_3_3.txt WA 23 ms 15872 KB
subtask_3_4.txt WA 29 ms 16128 KB
subtask_3_5.txt WA 28 ms 16128 KB
subtask_3_6.txt WA 30 ms 16076 KB
subtask_3_7.txt WA 30 ms 16076 KB
subtask_3_8.txt WA 30 ms 16076 KB
subtask_3_9.txt WA 30 ms 16076 KB