제출 #1359728

#제출 시각아이디문제언어결과실행 시간메모리
1359728kutomei3Zoltan (COCI16_zoltan)C++20
21 / 140
1095 ms4676 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    cin >> n;

    int arr[n];
    for (auto& p : arr) cin >> p;

    int ns = (1 << n);
    int mx = 0;
    int ct = 0;
    int md = 1e9 + 7;
    for (int i = 0; i < ns; i++) {
        if (i & 1) continue;
        deque<int> dq;
        for (int j = 0; j < n; j++) {
            if (i & (1 << j)) dq.push_back(arr[j]);
            else dq.push_front(arr[j]); 
        }
        vector<int> vec;
        int ct2 = 1;
        for (int j = 0; j < n; j++) {
            auto it = lower_bound(vec.begin(), vec.end(), dq[j]);
            if (it == vec.end()) vec.push_back(dq[j]), ct2 = 1;
            else if (it - vec.begin() == vec.size() - 1) *it = dq[j], ct2++;
            else *it = dq[j];
        }
        if (vec.size() > mx) mx = vec.size(), ct = ct2;
        else if (vec.size() == mx) ct = (ct + ct2) % md;
    }

    cout << mx << ' ' << ct;

    return 0;
}

/*

*/
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…