Submission #1178500

#TimeUsernameProblemLanguageResultExecution timeMemory
117850012345678Arcade (NOI20_arcade)C++20
7 / 100
1 ms328 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=305;

int n, m, cnt, vs[nx], deg[nx], res;

struct info
{
    int t, a;
    bool operator< (const info &o) const {return t<o.t;}
} d[nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>m;
    for (int i=1; i<=m; i++) cin>>d[i].t;
    for (int i=1; i<=m; i++) cin>>d[i].a;
    sort(d+1, d+m+1);
    for (int i=1; i<=m; i++) for (int j=1; j<i; j++) if (d[i].t-d[j].t>=abs(d[i].a-d[j].a)) deg[i]++;
    while (cnt!=m)
    {
        vector<int> cur;
        for (int i=1; i<=m; i++) if (!vs[i]&&!deg[i]) cnt++, vs[i]=1, cur.push_back(i);
        res=max(res, (int)cur.size());
        for (auto j:cur) for (int i=j+1; i<=m; i++) if (d[i].t-d[j].t>=abs(d[i].a-d[j].a)) deg[i]--;
    }
    cout<<res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...