WA 20 求助,只过了判无解的点
查看原帖
WA 20 求助,只过了判无解的点
726139
残阳如血楼主2024/8/28 10:33
#include <bits/stdc++.h>
using psc = std::pair<std::string, char>;
const int K = 1e5 + 10;

int n, k, m, p;
std::vector<psc> a;

void input() {
	std::cin >> n >> k >> m >> p;
	a.resize(k + 1);
	for (int i = 1; i <= k; ++i)
		std::cin >> a[i].first >> a[i].second;
	if (n * 4 > k) {
		puts("Error:cards not enough");
		exit(0);
	}
}

void shuffle() {
	while (m--) {
		std::vector<psc> b;
		b.push_back({"", ' '});
		for (int i = 1; i <= k / 2; ++i) {
			b.push_back(a[k / 2 + i]);
			b.push_back(a[i]);
		}
		if (k & 1) b.push_back(a[k]);
		a = b;
	}
}

void work() {
	std::vector<psc> pai;
	for (int i = 1; i <= k; ++i) {
		if (pai.size() == 4) break;
		if ((i - 1) % n + 1 == p) pai.push_back(a[i]);
	}
	for (int i = 0; i < 4; ++i) {
		std::cout << pai[i].first << ' ' << pai[i].second << std::endl;
	}
}

int main() {
	std::cin.tie(0)->sync_with_stdio(0);
	input();
	shuffle();
	work();
	return 0;
}
2024/8/28 10:33
加载中...