Submission #2195233
Source Code Expand
#include <bits/stdc++.h> using namespace std; int n,a[100009],c[100009],e[300009],f[300009],len; string S; priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > PQ1,PQ2; bool record[500009]; set<int>LL,RR; void query_1(){ len++; while(!PQ1.empty()){ pair<int,int>E=PQ1.top(); if(f[E.second]!=E.first) { PQ1.pop();continue; } if(E.first>len) break; // 間の区間を消す PQ1.pop();f[E.second]=0; // 2 個の区間を消す、新たな区間を挿入 auto itr1=RR.lower_bound(E.second); int GL=*itr1,GR=E.second+E.first; PQ2.push(make_pair(GL,GR-GL+e[GL])); e[GL]=(GR-GL+e[GL]);e[GR]=0;LL.erase(-GR);RR.erase(GR); } } void query_2(){ len--; while(!PQ2.empty()){ pair<int,int>E=PQ2.top(); if(e[E.second]!=E.first){ PQ2.pop();continue; } if(E.first>(-len)) break; //区間を消す PQ2.pop();e[E.second]=0; LL.erase(-E.second);RR.erase(E.second); //間の区間を結合させる auto itr1=RR.lower_bound(E.second); auto itr2=LL.lower_bound(E.second); int GL=*itr1,GR=*itr2;GR*=-1; PQ2.push(make_pair(GL,GR-GL-e[GL])); f[GL+e[GL]]=GR-GL-e[GL]; f[E.second+E.first]=0; } } bool solve(int I){ for(int i=0;i<n;i++){e[i]=0;f[i]=0;record[i]=false;} LL.clear();RR.clear();len=0; while(!PQ1.empty()) PQ1.pop(); while(!PQ2.empty()) PQ2.pop(); for(int i=0;i<n;i++){ if(a[i]>=I) c[i]=1; else c[i]=0; } int s=0; for(int i=0;i<=n;i++){ if(c[i]==1) s++; else{ if(s>=1) PQ2.push(make_pair(s,i-s)); LL.insert(-(i-s));RR.insert((i-s));e[i-s]=s; s=0; } } s=-1000000; for(int i=0;i<n;i++){ if(c[i]==0) s++; else{ if(s>=1) PQ1.push(make_pair(s,i-s)); if(s>=1)f[i-s]=s; s=0; } } //cout<<endl<<I<<": ";for(int i=0;i<n;i++) cout<<c[i]<<" ";cout<<endl; int sum=0; for(int i=0;i<S.size();i++){ //for(int j=0;j<n;j++) cout<<e[j]<<" ";cout<<endl; if(S[i]=='M') query_1(); if(S[i]=='m') query_2(); if(S[i]=='M') sum++; } while(!PQ2.empty()){ pair<int,int>E=PQ2.top();PQ2.pop(); if(e[E.second]!=E.first) continue; for(int i=0;i<E.first+len;i++) record[E.second+i]=true; } return record[sum]; } int main(){ cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cin>>S; int L=0,R=(1<<17),M,maxn; for(int i=0;i<20;i++){ M=(L+R)/2; bool p1=solve(M); if(p1==true){maxn=max(maxn,M);L=M;} else{R=M;} } cout<<maxn<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Compression |
User | E869120 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2467 Byte |
Status | WA |
Exec Time | 2104 ms |
Memory | 11644 KB |
Judge Result
Set Name | Sample | subtask1 | subtask2 | All | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 400 | 0 / 800 | 0 / 200 | ||||||||||||
Status |
|
|
|
|
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, sample_1.txt, sample_2.txt, sample_3.txt, sample_4.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 | WA | 1 ms | 256 KB |
2_2.txt | WA | 1 ms | 256 KB |
sample_1.txt | WA | 1 ms | 256 KB |
sample_2.txt | WA | 1 ms | 256 KB |
sample_3.txt | WA | 1 ms | 256 KB |
sample_4.txt | WA | 1 ms | 256 KB |
subtask_1.2_1.txt | WA | 1 ms | 256 KB |
subtask_1.2_2.txt | WA | 1 ms | 256 KB |
subtask_1_1.txt | TLE | 2104 ms | 9084 KB |
subtask_1_10.txt | WA | 144 ms | 9084 KB |
subtask_1_2.txt | WA | 142 ms | 9084 KB |
subtask_1_3.txt | WA | 147 ms | 9084 KB |
subtask_1_4.txt | WA | 134 ms | 8696 KB |
subtask_1_5.txt | TLE | 2103 ms | 1664 KB |
subtask_1_6.txt | TLE | 2104 ms | 9084 KB |
subtask_1_7.txt | WA | 1 ms | 256 KB |
subtask_1_8.txt | TLE | 2104 ms | 11000 KB |
subtask_1_9.txt | WA | 143 ms | 9084 KB |
subtask_2_1.txt | WA | 544 ms | 9084 KB |
subtask_2_10.txt | WA | 824 ms | 11644 KB |
subtask_2_2.txt | WA | 915 ms | 11644 KB |
subtask_2_3.txt | WA | 686 ms | 11644 KB |
subtask_2_4.txt | WA | 509 ms | 9084 KB |
subtask_2_5.txt | WA | 1 ms | 256 KB |
subtask_2_6.txt | WA | 1 ms | 256 KB |
subtask_2_7.txt | WA | 1 ms | 256 KB |
subtask_2_8.txt | WA | 592 ms | 9084 KB |
subtask_2_9.txt | WA | 126 ms | 2992 KB |
subtask_3_1.txt | TLE | 2104 ms | 8956 KB |
subtask_3_10.txt | WA | 152 ms | 8956 KB |
subtask_3_11.txt | WA | 154 ms | 9084 KB |
subtask_3_12.txt | TLE | 2104 ms | 9084 KB |
subtask_3_13.txt | TLE | 2104 ms | 9084 KB |
subtask_3_14.txt | TLE | 2104 ms | 10748 KB |
subtask_3_15.txt | TLE | 2104 ms | 8828 KB |
subtask_3_16.txt | TLE | 2104 ms | 8700 KB |
subtask_3_17.txt | WA | 145 ms | 9084 KB |
subtask_3_18.txt | WA | 145 ms | 9084 KB |
subtask_3_19.txt | WA | 149 ms | 9084 KB |
subtask_3_2.txt | TLE | 2104 ms | 8956 KB |
subtask_3_20.txt | WA | 148 ms | 9084 KB |
subtask_3_21.txt | WA | 147 ms | 9084 KB |
subtask_3_3.txt | WA | 68 ms | 1664 KB |
subtask_3_4.txt | WA | 143 ms | 8828 KB |
subtask_3_5.txt | WA | 131 ms | 8568 KB |
subtask_3_6.txt | WA | 157 ms | 9084 KB |
subtask_3_7.txt | WA | 151 ms | 9084 KB |
subtask_3_8.txt | WA | 154 ms | 9084 KB |
subtask_3_9.txt | WA | 179 ms | 8828 KB |