Submission #34732642


Source Code Expand

    #include <bits/stdc++.h>

    #include <ext/pb_ds/assoc_container.hpp>
    #include <ext/pb_ds/tree_policy.hpp>
    // #pragma GCC target("popcnt")

using namespace std;
using namespace __gnu_pbds;

    template <typename t>
using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;

    // #pragma gcc optimize("ofast")
    // #pragma gcc target("avx,avx2,fma")


    #define int long long

    #define all(x) (x).begin(), (x).end()


    #define pb push_back
    #define endl '\n'
    #define fi first
    #define se second

    // const int mod = 1e9 + 7;

const int mod=998'244'353;


const long long INF = 2e18 + 10;
    // const int INF=1e9+10;

    #define readv(x, n)   \
vector<int> x(n); \
for (auto &i : x) \
    cin >> i;



    template <typename t>
using v = vector<t>;

    template <typename t>
using vv = vector<vector<t>>;

    template <typename t>
using vvv = vector<vector<vector<t>>>;

typedef vector<int> vi;
typedef vector<double> vd;
typedef vector<vector<int>> vvi;
typedef vector<vector<vector<int>>> vvvi;
typedef vector<vector<vector<vector<int>>>> vvvvi;
typedef vector<vector<double>> vvd;

typedef pair<int, int> pii;



int multiply(int a, int b, int in_mod) { return (int)(1ll * a * b % in_mod); }
int mult_identity(int a) { return 1; }



const double pi = acosl(-1);



auto power(auto a, auto b, const int in_mod)
{

    auto prod = mult_identity(a);
    auto mult = a % in_mod;
    while (b != 0)
    {
        if (b % 2)
        {
            prod = multiply(prod, mult, in_mod);
        }
        if(b/2)
            mult = multiply(mult, mult, in_mod);
        b /= 2;
    }
    return prod;
}
auto mod_inv(auto q, const int in_mod)
{
    return power(q, in_mod - 2, in_mod);
}


mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());



    #define stp cout << fixed << setprecision(20);

void solv()
{
    int n;
    cin>>n;

    readv(p,n);

    vi p_inv(n);
    for(int i = 0;i<n;i++)
        p_inv[p[i]] = i;

    vi cnt(n );

    for(int i = 0;i<n;i++)
    {
        int happy_rot = (p_inv[i] - i + n)%n;

        cnt[happy_rot]++;

        happy_rot = ( happy_rot + 1)%n;
        cnt[happy_rot]++;
        happy_rot = ( happy_rot -2 + n)%n;
        cnt[happy_rot]++;
    }

    int mx = *max_element(all(cnt));
    cout<<mx<<endl;
}

void solve()    
{

    int t = 1;
        // cin>>t;
    while(t--)
    {
        solv();
    }
}




signed main()
{



    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cerr.tie(NULL);

    auto clk = clock();
        // -------------------------------------Code starts here---------------------------------------------------------------------

    signed t = 1;
        // cin >> t;

    for (signed test = 1; test <= t; test++)
    {
            // cout<<"Case #"<<test<<": ";

        solve();
    }

        // -------------------------------------Code ends here------------------------------------------------------------------

    clk = clock() - clk;

        #ifndef ONLINE_JUDGE
    cerr << fixed << setprecision(6) << "\nTime: " << ((float)clk) / CLOCKS_PER_SEC << "\n";
        #endif
    return 0;
}

Submission Info

Submission Time
Task C - Chinese Restaurant
User Wernier
Language C++ (GCC 9.2.1)
Score 300
Code Size 3339 Byte
Status AC
Exec Time 37 ms
Memory 7924 KiB

Compile Error

./Main.cpp: In function ‘long long int mult_identity(long long int)’:
./Main.cpp:63:23: warning: unused parameter ‘a’ [-Wunused-parameter]
   63 | int mult_identity(int a) { return 1; }
      |                       ^
./Main.cpp: At global scope:
./Main.cpp:71:12: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   71 | auto power(auto a, auto b, const int in_mod)
      |            ^~~~
./Main.cpp:71:20: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   71 | auto power(auto a, auto b, const int in_mod)
      |                    ^~~~
./Main.cpp:88:14: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
   88 | auto mod_inv(auto q, const int in_mod)
      |              ^~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 30
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_smallN_00.txt, 01_smallN_01.txt, 01_smallN_02.txt, 01_smallN_03.txt, 01_smallN_04.txt, 01_smallN_05.txt, 01_smallN_06.txt, 01_smallN_07.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 03_inc_00.txt, 03_inc_01.txt, 03_inc_02.txt, 03_inc_03.txt, 04_dec_00.txt, 04_dec_01.txt, 04_dec_02.txt, 04_dec_03.txt, 05_adj_00.txt, 05_adj_01.txt, 05_adj_02.txt, 05_adj_03.txt, 05_adj_04.txt, 05_adj_05.txt, 05_adj_06.txt, 05_adj_07.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 8 ms 3516 KiB
00_sample_01.txt AC 3 ms 3596 KiB
00_sample_02.txt AC 2 ms 3404 KiB
01_smallN_00.txt AC 3 ms 3656 KiB
01_smallN_01.txt AC 3 ms 3464 KiB
01_smallN_02.txt AC 2 ms 3408 KiB
01_smallN_03.txt AC 2 ms 3512 KiB
01_smallN_04.txt AC 3 ms 3592 KiB
01_smallN_05.txt AC 2 ms 3464 KiB
01_smallN_06.txt AC 3 ms 3508 KiB
01_smallN_07.txt AC 2 ms 3408 KiB
02_rnd_00.txt AC 33 ms 7848 KiB
02_rnd_01.txt AC 29 ms 7772 KiB
02_rnd_02.txt AC 34 ms 7800 KiB
03_inc_00.txt AC 37 ms 7868 KiB
03_inc_01.txt AC 28 ms 7900 KiB
03_inc_02.txt AC 31 ms 7848 KiB
03_inc_03.txt AC 31 ms 7860 KiB
04_dec_00.txt AC 27 ms 7924 KiB
04_dec_01.txt AC 32 ms 7860 KiB
04_dec_02.txt AC 33 ms 7788 KiB
04_dec_03.txt AC 30 ms 7860 KiB
05_adj_00.txt AC 27 ms 7848 KiB
05_adj_01.txt AC 30 ms 7856 KiB
05_adj_02.txt AC 32 ms 7776 KiB
05_adj_03.txt AC 33 ms 7900 KiB
05_adj_04.txt AC 33 ms 7788 KiB
05_adj_05.txt AC 27 ms 7836 KiB
05_adj_06.txt AC 32 ms 7856 KiB
05_adj_07.txt AC 31 ms 7864 KiB