Submission #1233833

#TimeUsernameProblemLanguageResultExecution timeMemory
1233833ByeWorldArcade (NOI20_arcade)C++20
51 / 100
1055 ms479324 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") #define int long long #define ll long long #define fi first #define se second #define lf ((id<<1)) #define rg ((id<<1)|1) #define md ((l+r)>>1) #define pb push_back using namespace std; const int MAXN = 1e5+10; const int INF = 1e9+10; const int LOG = 20; int MOD; typedef pair<int,int> pii; int sum(int a, int b){ return (a+MOD+b)%MOD; } void chsum(int &a, int b){ a = sum(a,b); } int mul(int a, int b){ return (a*b)%MOD; } int expo(int a, int b){ if(b==0) return 1; int te = expo(a, b>>1); te = mul(te,te); return (b%2 ? (a*te)%MOD : te); } void chmul(int &a, int b){ a = mul(a,b); } void chmn(auto &a, auto b){ a = min(a, b); } void chmx(auto &a, auto b){ a = max(a, b); } int n, x, a[MAXN], t[MAXN]; int ans; vector<int> adj[MAXN]; bool mat[MAXN]; int ba[MAXN]; int day, done[MAXN]; bool cek(int nw){ if(done[nw]==day) return 0; done[nw] = day; for(auto nx : adj[nw]){ if(ba[nx]==0 || cek(ba[nx])){ ba[nx] = nw; return 1; } } return 0; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>x>>n; for(int i=1; i<=n; i++) cin>>t[i]; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ if(i==j) continue; if(t[j]-t[i] >= abs(a[j]-a[i])){ adj[i].pb(n+j); // cout << i << ' ' << n+j << " pp\n"; } } } for(int i=1; i<=n; i++){ for(auto nx : adj[i]){ if(ba[nx]==0){ ans++; ba[nx] = i; mat[i] = 1; break; } } } for(int i=1; i<=n; i++){ if(mat[i]) continue; day++; ans += cek(i); } cout << n-ans << '\n'; }
#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...