Submission #243478

# Submission time Handle Problem Language Result Execution time Memory
243478 2020-07-01T08:51:14 Z Vimmer Zoltan (COCI16_zoltan) C++14
21 / 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 Incorrect 945 ms 504 KB Output isn't correct
2 Incorrect 946 ms 504 KB Output isn't correct
3 Incorrect 939 ms 504 KB Output isn't correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 904 ms 504 KB Output is correct
6 Correct 749 ms 504 KB Output is correct
7 Incorrect 78 ms 384 KB Output isn't correct
8 Incorrect 79 ms 384 KB Output isn't correct
9 Incorrect 80 ms 384 KB Output isn't correct
10 Incorrect 78 ms 384 KB Output isn't correct
11 Execution timed out 1088 ms 2684 KB Time limit exceeded
12 Execution timed out 1082 ms 2556 KB Time limit exceeded
13 Execution timed out 1087 ms 2420 KB Time limit exceeded
14 Execution timed out 1089 ms 2684 KB Time limit exceeded
15 Execution timed out 1094 ms 2932 KB Time limit exceeded
16 Execution timed out 1092 ms 3060 KB Time limit exceeded
17 Execution timed out 1094 ms 3068 KB Time limit exceeded
18 Execution timed out 1090 ms 3068 KB Time limit exceeded
19 Execution timed out 1088 ms 3068 KB Time limit exceeded
20 Execution timed out 1087 ms 3068 KB Time limit exceeded