Submission #848542

#TimeUsernameProblemLanguageResultExecution timeMemory
848542n3rm1nCollecting Stamps 3 (JOI20_ho_t3)C++17
0 / 100
2029 ms348 KiB
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const long long MAXN = 205;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
long long n, l, a[MAXN], t[MAXN];
long long maxx = 0;
void read()
{
    cin >> n >> l;
    for (long long i = 1; i <= n; ++ i)
        cin >> a[i];
    for (long long i = 1; i <= n; ++ i)
    {
        cin >> t[i];
        maxx = max(maxx, t[i]);
    }
}
long long p[MAXN], used[MAXN], ans = 0;
void check()
{
    long long ttime = 0, on = 0, cnt = 0;
    long long go, dist;
    for (long long i = 1; i <= n; ++ i)
    {
        go = a[p[i]];
        dist = abs(go - on);
        ttime += min(dist, l - dist);
        if(ttime > maxx)break;
        if(ttime <= t[p[i]])cnt ++;
        on = go;
    }
    ans = max(ans, cnt);

}
void gen(long long pos)
{
    if(pos > n)
    {
        check();
        return;
    }
    for (long long i = 1; i <= n; ++ i)
    {
        if(!used[i])
        {
            used[i] = 1;
            p[pos] = i;
            gen(pos+1);
            used[i] = 0;
        }
    }
}
int main()
{
    speed();

    read();
    gen(1);
    cout << ans << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...