Submission #243472

# Submission time Handle Problem Language Result Execution time Memory
243472 2020-07-01T08:46:58 Z Vimmer Zoltan (COCI16_zoltan) C++14
7 / 140
1000 ms 3444 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) && val == gr[j]) len--;

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

                len++;

                while (j + 1 != sz(gr) && gr[j + 1] == gr[j]) {j++; 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 Incorrect 923 ms 428 KB Output isn't correct
2 Incorrect 933 ms 432 KB Output isn't correct
3 Incorrect 936 ms 504 KB Output isn't correct
4 Correct 4 ms 384 KB Output is correct
5 Execution timed out 1045 ms 392 KB Time limit exceeded
6 Execution timed out 1091 ms 384 KB Time limit exceeded
7 Incorrect 93 ms 384 KB Output isn't correct
8 Incorrect 94 ms 384 KB Output isn't correct
9 Incorrect 90 ms 384 KB Output isn't correct
10 Incorrect 88 ms 384 KB Output isn't correct
11 Execution timed out 1098 ms 2804 KB Time limit exceeded
12 Execution timed out 1092 ms 2676 KB Time limit exceeded
13 Execution timed out 1077 ms 2352 KB Time limit exceeded
14 Execution timed out 1090 ms 2676 KB Time limit exceeded
15 Execution timed out 1080 ms 2932 KB Time limit exceeded
16 Execution timed out 1083 ms 3316 KB Time limit exceeded
17 Execution timed out 1088 ms 3444 KB Time limit exceeded
18 Execution timed out 1087 ms 3316 KB Time limit exceeded
19 Execution timed out 1091 ms 3324 KB Time limit exceeded
20 Execution timed out 1095 ms 3316 KB Time limit exceeded