답안 #753679

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
753679 2023-06-05T16:52:10 Z 1075508020060209tc 서열 (APIO23_sequence) C++17
12 / 100
253 ms 18012 KB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n;
int oar[500005];
pair<pair<int,int>,int>sar[500005];
pair<pair<int,int>,int>tar[500005];
int ans;

void slv(int l,int r){
if(l==r){return;}
if(l>r){return;}
int mi=(l+r)/2;
slv(l,mi);slv(mi+1,r);
int lmn=1e9;
int lit=l;int rit=mi+1;

for(int i=l;i<=r;i++){
    if( ((rit==r+1)||(lit<=mi&&sar[lit].first.second<=sar[rit].first.second))){
        tar[i]=sar[lit];
        lmn=min(lmn,sar[lit].second);
        lit++;
    }else{
        tar[i]=sar[rit];
        ans=max(ans,sar[rit].second-lmn);
        rit++;
    }
}
for(int i=l;i<=r;i++){
    sar[i]=tar[i];
}
}

int fslv(){

   ans=1;
    for(int v=1;v<=3;v++){
        for(int i=0;i<=n;i++){
            sar[i]=sar[max(i-1,0)];
            if(oar[i]<v){
                sar[i].first.first--;
            }else{
                sar[i].first.first++;
            }
            if(oar[i]>v){
                sar[i].first.second--;
            }else{
                sar[i].first.second++;
            }
            if(oar[i]==v){
                sar[i].second++;
            }
        }
        sort(sar+0,sar+n+1);
        slv(0,n);
    }

return ans;

}


int sequence(int N, std::vector<int> A) {
    n=N;
    for(int i=0;i<n;i++){
        oar[i+1]=A[i];
    }
return fslv();

  return 0;
}
/*
signed main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>oar[i];
    }
    ans=1;
    for(int v=1;v<=n;v++){
        for(int i=0;i<=n;i++){
            sar[i]=sar[max(i-1,0)];
            if(oar[i]<v){
                sar[i].first.first--;
            }else{
                sar[i].first.first++;
            }
            if(oar[i]>v){
                sar[i].first.second--;
            }else{
                sar[i].first.second++;
            }
            if(oar[i]==v){
                sar[i].second++;
            }
        }
        sort(sar+0,sar+n+1);
        slv(0,n);
    }
    cout<<ans<<endl;



    return 0;
}

*/
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Incorrect 1 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Incorrect 1 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 216 ms 17884 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 237 ms 17936 KB Output is correct
3 Correct 218 ms 17884 KB Output is correct
4 Correct 222 ms 17908 KB Output is correct
5 Correct 253 ms 17784 KB Output is correct
6 Correct 209 ms 17868 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 198 ms 18012 KB Output is correct
2 Correct 188 ms 17872 KB Output is correct
3 Incorrect 191 ms 17880 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Incorrect 1 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Incorrect 1 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -