Submission #243477

# Submission time Handle Problem Language Result Execution time Memory
243477 2020-07-01T08:50:37 Z Vimmer Zoltan (COCI16_zoltan) C++14
14 / 140
1000 ms 3068 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("no-stack-protector")

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define pf push_front
#define N 100010
#define M ll(1e9 + 7)
#define inf 1e9 + 1e9

using namespace std;
//using namespace __gnu_pbds;

typedef long double ld;
typedef long long ll;
typedef short int si;
typedef array <int, 2> a2;

//typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

ll sum[N],  mx, a[N];

int main()
{
    //freopen("input.txt", "r", stdin); //freopen("output4.txt", "w", stdout);

    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n;

    cin >> n;

    for (int i = 0; i < n; i++) cin >> a[i];

    for (int msk = 0; msk < (1 << n); msk++)
    {
        vector <int> gr; gr.clear();

        for (int i = n - 1; i >= 0; i--)
            if ((1 << i) & msk) gr.pb(a[i]);

        for (int i = 0; i < n; i++)
            if (!((1 << i) & msk)) gr.pb(a[i]);

        for (int i = 0; i < n; i++)
        {
            ll kol = 1, len = 1;

            int j = i;

            while (1)
            {
                int val = gr[j];

                j++;

                while (j < sz(gr) && gr[j] <= val) j++;

                if (j == sz(gr)) break;

                val = gr[j];

                len++;

                while (j + 1 != sz(gr) && gr[j + 1] < val) {j++; if (gr[j] == val) kol = (kol + kol) % M;}
            }

            sum[len] += kol; sum[len] %= M;

            mx = max(mx, len);
        }
    }

    cout << mx << " " << sum[mx] / 2<< endl;
}
# Verdict Execution time Memory Grader output
1 Execution timed out 1029 ms 508 KB Time limit exceeded
2 Execution timed out 1020 ms 384 KB Time limit exceeded
3 Execution timed out 1033 ms 392 KB Time limit exceeded
4 Correct 5 ms 384 KB Output is correct
5 Execution timed out 1096 ms 384 KB Time limit exceeded
6 Correct 791 ms 508 KB Output is correct
7 Incorrect 90 ms 504 KB Output isn't correct
8 Incorrect 89 ms 384 KB Output isn't correct
9 Incorrect 89 ms 384 KB Output isn't correct
10 Incorrect 88 ms 384 KB Output isn't correct
11 Execution timed out 1096 ms 2932 KB Time limit exceeded
12 Execution timed out 1089 ms 2684 KB Time limit exceeded
13 Execution timed out 1094 ms 2176 KB Time limit exceeded
14 Execution timed out 1091 ms 2684 KB Time limit exceeded
15 Execution timed out 1091 ms 2932 KB Time limit exceeded
16 Execution timed out 1097 ms 3068 KB Time limit exceeded
17 Execution timed out 1096 ms 3068 KB Time limit exceeded
18 Execution timed out 1084 ms 3060 KB Time limit exceeded
19 Execution timed out 1098 ms 3068 KB Time limit exceeded
20 Execution timed out 1094 ms 3060 KB Time limit exceeded