답안 #525521

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
525521 2022-02-11T21:03:55 Z sidon K번째 경로 (IZhO11_kthpath) C++17
0 / 100
364 ms 262148 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int Z = 35;

int n, m, k, dp[Z][Z];
string a[Z];

int32_t main() {
	ios::sync_with_stdio(0), cin.tie(0);

	for(int i = 1; i < Z; ++i)
		for(int j = 1; j < Z; ++j)
			dp[i][j] = dp[i-1][j] + dp[i][j-1], dp[1][1] = 1;

	cin >> n >> m;
	for(int i = 0; i < n; ++i)
		cin >> a[i];
	cin >> k;

	string ans(n+m-1, a[0][0]);
	vector<array<int, 2>> cur = {{0, 0}}, nxt;

	for(int i = 0; i < n+m-1; ++i) {
		map<char, int> sum;

		for(auto &[x, y] : cur) 
			sum[a[x][y]] += dp[n-x][m-y];

		for(auto &[c, s] : sum) {
			ans[i] = c;
			if(s < k) k -= s;
			else break;
		}

		for(auto &[x, y] : cur) if(a[x][y] == ans[i]) {
			if(x+1 != n) nxt.push_back({x+1, y});
			if(y+1 != m) nxt.push_back({x, y+1});
		}

		cur = nxt;
		nxt.clear();
	}

	cout << ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 324 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 1 ms 324 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Runtime error 364 ms 262148 KB Execution killed with signal 9
11 Halted 0 ms 0 KB -