Submission #17876

#TimeUsernameProblemLanguageResultExecution timeMemory
17876chromeK-th path (IZhO11_kthpath)C++98
0 / 100
0 ms2272 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define foreach(it, S) for (__typeof (S.begin()) it = S.begin(); it != S.end(); it++) #define all(x) x.begin(), x.end() #define endl '\n' #define _ ios_base :: sync_with_stdio(false); cin.tie(NULL); #ifdef inputf #define fname "" #else #define fname "" // <- Here #endif const double eps = 1e-9; const int MaxN = int(2e5) + 256; const int MOD = int(1e9) + 7; template <typename T> inline T gcd(T a, T b) { return b ? gcd (b, a % b) : a; } inline bool Palindrome(const string& s) { return equal(s.begin(), s.end(), s.rbegin()); } ll c[100][100]; char a[100][100]; int main() { _ #ifdef lcl freopen(fname".in", "r", stdin); freopen(fname".out", "w", stdout); #endif for (int i = 0; i <= 60; ++i) { c[i][0] = c[i][i] = 1; for (int j = 1; j < i; ++j) c[i][j] = c[i - 1][j] + c[i - 1][j - 1]; } int n, m; cin >> n >> m; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) cin >> a[i][j]; ll k; cin >> k; int x = 1, y = 1; int len = 0; string res = ""; while (len < n + m - 2) { // cerr << len << endl; res += a[x][y]; vector <pair <char, pair <int, int> > > v; if (y + 1 <= m) v.push_back(make_pair(a[x][y + 1], make_pair(x, y + 1))); if (x + 1 <= n) v.push_back(make_pair(a[x + 1][y], make_pair(x + 1, y))); sort(all(v)); for (int i = 0; i < (int)v.size(); ++i) { int X = v[i].second.first; int Y = v[i].second.second; char ch = v[i].first; ll cnt = c[n - X + m - Y][n - X]; // cerr << k << " " << cnt << endl; if (k <= cnt) { // res += ch; x = X; y = Y; break; } else { k -= cnt; } } ++len; } res += a[x][y]; cout << res; return 0; }

Compilation message (stderr)

kthpath.cpp: In function 'int main()':
kthpath.cpp:68:9: warning: unused variable 'ch' [-Wunused-variable]
    char ch = v[i].first;
         ^
#Verdict Execution timeMemoryGrader output
Fetching results...