제출 #1359729

#제출 시각아이디문제언어결과실행 시간메모리
1359729tullZoltan (COCI16_zoltan)C++20
0 / 140
1097 ms30360 KiB
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(A) A.begin(),A.end()
#define vp cout<<'\n';
#define bp '\n'
const int MOD=1e9+7;
const int N=1e5+10;
int n,x;
vector<int>a;
deque<int>d;
int mx=0,cnt=0;
void rec(int i){
    if(i==n){
        vector<int>l;
        for(auto&e:d){
            //cout<<e<<' ';
            auto p=lower_bound(all(l),e);
            if(p==l.end()){
                l.emplace_back(e);
            }else{
                *p=e;
            }
        }
        //vp
        if(l.size()==mx)++cnt;
        else if(l.size()>mx){
            mx=l.size();
            cnt=1;
        }
        return ;
    }
    d.emplace_front(a[i]);
    rec(i+1);
    d.pop_front();
    d.emplace_back(a[i]);
    rec(i+1);
    d.pop_back();
}
signed main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>x;
        a.emplace_back(x);
    }
    rec(0);
    cout<<mx<<' '<<cnt;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…