Submission #701808

#TimeUsernameProblemLanguageResultExecution timeMemory
701808shmadArcade (NOI20_arcade)C++17
18 / 100
12 ms4460 KiB
#pragma GCC optimize("O3", "unroll-loops") // "Ofast" #pragma GCC target("avx2", "bmi", "bmi2", "lzcnt", "popcnt") #include <bits/stdc++.h> //#define int long long #define vt vector #define pb push_back #define all(x) (x).begin(), (x).end() #define sz(x) (int)(x).size() #define f first #define s second #define dbg(x) cerr << #x << " = " << x << '\n' #define bit(x, i) ((x) >> (i) & 1) using namespace std; using ll = long long; using ld = long double; using pii = pair<int, int>; const int N = 1e6 + 5, mod = 1e9 + 7; const ll inf = 1e18 + 7; const ld eps = 1e-6; int n, m, dp[105][105][105]; set<pii> st; int dx[] = {-1, -1, -1, 0, 0, 1, 1, 1}; int dy[] = {-1, 0, 1, -1, 1, -1, 0, 1}; void solve () { cin >> n >> m; vt<pii> v(m + 1); for (int i = 1; i <= m; i++) cin >> v[i].f; for (int i = 1; i <= m; i++) cin >> v[i].s, st.insert(v[i]); sort(all(v)); bool ok = 1; for (int i = 1; i < m ; i++) { if (v[i + 1].f - v[i].f < abs(v[i + 1].s - v[i].s)) ok = 0; } if (ok) cout << "1\n", exit(0); // dp[t][i][j] = max number of buttons pressed -> time t, hand1 on pos i, hand2 on pos j for (int t = 1; t <= 100; t++) { for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { for (int k = 0; k < 8; k++) { int x = i + dx[k], y = j + dy[k]; dp[t][i][j] = max(dp[t][i][j], dp[t - 1][x][y]); } if (st.count({t, i})) dp[t][i][j]++; if (st.count({t, j})) dp[t][i][j]++; } } } int ans = 0; for (int t = 1; t <= 100; t++) { for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) ans = max(ans, dp[t][i][j]); } } cout << (ans == m ? 2 : 3); cout << '\n'; } bool testcases = 0; signed main() { #ifdef ONLINE_JUDGE freopen(".in", "r", stdin); freopen(".out", "w", stdout); #endif cin.tie(0) -> sync_with_stdio(0); int test = 1; if (testcases) cin >> test; for (int cs = 1; cs <= test; cs++) { solve(); } }
#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...