Submission #68807

#TimeUsernameProblemLanguageResultExecution timeMemory
68807forestryksJetpack (COCI16_jetpack)C++14
80 / 80
46 ms10544 KiB
/////////////////////////////////////////////////////////////////////////////////////////////// #include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back #define FAST_IO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) #define FILE_IO(x) freopen((string(x) + ".in").c_str(), "r", stdin); freopen((string(x) + ".out").c_str(), "w", stdout) #define f first #define s second #define x1 x1qwer #define y1 y1qwer #define right right123 #define left left123 #define foreach(it, v) for (auto it : v) #define rep(it, n) for (int it = 0; it < n; ++it) #define forin(it, l, r) for (int it = l; it < r; ++it) #define all(x) x.begin(), x.end() typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const double DINF = numeric_limits<double>::infinity(); const ll MOD = 1e9 + 7; const double EPS = 1e-7; ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } mt19937 mmtw_(MOD); uniform_int_distribution<ll> rd_; ll randomll() { return rd_(mmtw_);} ll rnd(ll x, ll y) { return rd_(mmtw_) % (y - x + 1) + x; } template <class T> T fact(T n) { if (n == 1) return 1; return n * fact(n - 1); } //////////////////////////////////////////////////////////////////////////////////////////////// const int MAXN = 1e5 + 5; int n; bool a[MAXN][10]; bool used[MAXN][10]; bool path[MAXN]; vector<pii> res; void print() { for (int i = 0; i < n; ++i) { if (path[i]) { if (res.empty() || res.back().f + res.back().s < i) { res.push_back({i, 1}); } else { res.back().s += 1; } } } cout << res.size() << endl; for (auto &it : res) { cout << it.f << ' ' << it.s << endl; } } bool dfs(int x, int y) { used[x][y] = true; if (x == n - 1) { print(); exit(0); } if (y == 0) { if (!used[x + 1][y] && !a[x + 1][y]) { path[x] = false; dfs(x + 1, y); } } else { if (!used[x + 1][y - 1] && !a[x + 1][y - 1]) { path[x] = false; dfs(x + 1, y - 1); } } if (y == 9) { if (!used[x + 1][y] && !a[x + 1][y]) { path[x] = true; dfs(x + 1, y); } } else { if (!used[x + 1][y + 1] && !a[x + 1][y + 1]) { path[x] = true; dfs(x + 1, y + 1); } } } int main() { FAST_IO; cin >> n; rep(i, 10) { string s; cin >> s; rep(j, n) { a[j][9 - i] = (s[j] == 'X'); } } dfs(0, 0); }

Compilation message (stderr)

jetpack.cpp: In function 'bool dfs(int, int)':
jetpack.cpp:91:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...