Submission #1474519
Source Code Expand
#include <algorithm> #include <bitset> #include <cassert> #include <cfloat> #include <climits> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <fstream> #include <functional> #include <iomanip> #include <iostream> #include <list> #include <map> #include <memory> #include <numeric> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <utility> #include <vector> // c++11 #include <array> #include <tuple> #include <unordered_map> #include <unordered_set> #define mp make_pair #define mt make_tuple #define rep(i, n) for (int i = 0; i < (n); i++) using namespace std; using ll = long long; using ull = unsigned long long; using pii = pair<int, int>; const int INF = 1 << 29; const double EPS = 1e-9; const ll MOD = 1000000007; const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1}; int N,Q; const int MAX_N = 100100; bool dp[MAX_N][2]; int main() { cin >> N >> Q; dp[0][0] = true; for (int i = 0; i < Q; i++){ int a,b; cin >> a >> b; a--,b--; if (dp[a][0]){ if (a - 1 >= 0){ dp[a - 1][1] = true; } if (a + 1 < N){ dp[a + 1][1] = true; } } if (dp[b][0]){ if (b - 1 >= 0){ dp[b - 1][1] = true; } if (b + 1 < N){ dp[b + 1][1] = true; } } bool a0,b0; a0 = b0 = false; bool a1,b1; a1 = b1 = false; if (dp[a][0]){ b0 |= true; } if (dp[a][1]){ b1 |= true; } if (dp[b][0]){ a0 |= true; } if (dp[b][1]){ a1 |= true; } if (a - 1 >= 0 and dp[a - 1][0]){ b1 |= true; } if (a + 1 < N and dp[a + 1][0]){ b1 |= true; } if (b - 1 >= 0 and dp[b - 1][0]){ a1 |= true; } if (b + 1 < N and dp[b + 1][0]){ a1 |= true; } dp[a][0] = a0; dp[a][1] = a1; dp[b][0] = b0; dp[b][1] = b1; } int cnt = 0; for (int i = 0; i < N; i++){ if (i - 1 >= 0){ dp[i - 1][1] |= dp[i][0]; } if (i + 1 < N){ dp[i + 1][1] |= dp[i][0]; } } for (int i = 0; i < N; i++){ cnt += (dp[i][0] | dp[i][1]); } cout << cnt << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | G - Magician |
User | togatoga |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2339 Byte |
Status | AC |
Exec Time | 74 ms |
Memory | 512 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 70 ms | 384 KB |
subtask1_02.txt | AC | 72 ms | 384 KB |
subtask1_03.txt | AC | 70 ms | 384 KB |
subtask1_04.txt | AC | 74 ms | 384 KB |
subtask1_05.txt | AC | 70 ms | 384 KB |
subtask1_06.txt | AC | 72 ms | 384 KB |
subtask1_07.txt | AC | 70 ms | 384 KB |
subtask1_08.txt | AC | 72 ms | 384 KB |
subtask1_09.txt | AC | 70 ms | 384 KB |
subtask1_10.txt | AC | 72 ms | 384 KB |
subtask1_11.txt | AC | 71 ms | 384 KB |
subtask1_12.txt | AC | 72 ms | 384 KB |
subtask1_13.txt | AC | 70 ms | 384 KB |
subtask1_14.txt | AC | 72 ms | 384 KB |
subtask1_15.txt | AC | 70 ms | 384 KB |
subtask1_16.txt | AC | 72 ms | 384 KB |
subtask1_17.txt | AC | 71 ms | 512 KB |
subtask1_18.txt | AC | 71 ms | 384 KB |
subtask1_19.txt | AC | 70 ms | 384 KB |