提出 #57474197
ソースコード 拡げる
#include <bits/stdc++.h>
#include <atcoder/modint>
namespace {
using ModInt [[maybe_unused]] = atcoder::modint998244353;
using Num [[maybe_unused]] = long long int;
using Vec [[maybe_unused]] = std::vector<Num>;
using Set [[maybe_unused]] = std::set<Num>;
using Mset [[maybe_unused]] = std::multiset<Num>;
using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;
template<typename T>
using Q [[maybe_unused]] = std::queue<T>;
template<typename T>
using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
const std::vector<std::pair<Num, Num>> dyxs {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
std::map<char, std::pair<Num, Num>> directions {{'D', {1, 0}}, {'U', {-1, 0}}, {'R', {0, 1}}, {'L', {0, -1}}};
template<typename T>
void print_oneline(const std::vector<T>& vec, std::ostream& os) {
const auto size = vec.size();
for(size_t i{0}; i<size; ++i) {
os << vec.at(i) << (((i+1) == size) ? '\n' : ' ');
}
}
template<typename T>
void print_each(const std::vector<T>& vec, std::ostream& os) {
const auto size = vec.size();
for(size_t i{0}; i<size; ++i) {
os << vec.at(i) << '\n';
}
}
}
void mark_numbers(Num n, std::vector<Set>& ps, const Vec& order, Num mark, Vec& marks) {
std::vector<Vec> qs(3);
for(Num i{0}; i<3; ++i) {
Num left = n * i;
Num right = left + n;
for(const auto& p : ps.at(order.at(i))) {
if ((left <= p) && (p < right)) {
qs.at(i).push_back(p);
}
}
}
std::vector<size_t> ms(3);
for(Num i{0}; i<3; ++i) {
ms.at(i) = qs.at(i).size();
}
const auto sz = *std::ranges::min_element(ms);
for(Num i{0}; i<3; ++i) {
for(size_t j{0}; j<sz; ++j) {
const auto& v = qs.at(i).at(j);
marks.at(v) = mark;
ps.at(order.at(i)).erase(v);
}
}
return;
}
void solve(std::istream& is, std::ostream& os) {
Num n {0};
std::string s;
is >> n >> s;
const auto n3 = n * 3;
std::vector<Set> ps(3);
for(Num i{0}; i<n3; ++i) {
const Num d = s.at(i) - 'A';
ps.at(d).insert(i);
}
std::vector<std::pair<Num,Num>> ss;
Vec order {0,1,2};
Num mark {1};
Vec ans(n3, 1);
do {
mark_numbers(n, ps, order, mark, ans);
++mark;
} while(std::next_permutation(order.begin(), order.end()));
for(const auto& x : ans) {
os << x;
}
os << "\n";
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | A - ABC Identity |
| ユーザ | zettsut |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 400 |
| コード長 | 2734 Byte |
| 結果 | AC |
| 実行時間 | 221 ms |
| メモリ | 39740 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 01.txt, 02.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 1 ms | 3452 KiB |
| 02.txt | AC | 1 ms | 3344 KiB |
| 03.txt | AC | 1 ms | 3552 KiB |
| 04.txt | AC | 1 ms | 3464 KiB |
| 05.txt | AC | 1 ms | 3484 KiB |
| 06.txt | AC | 1 ms | 3556 KiB |
| 07.txt | AC | 1 ms | 3488 KiB |
| 08.txt | AC | 1 ms | 3556 KiB |
| 09.txt | AC | 1 ms | 3492 KiB |
| 10.txt | AC | 1 ms | 3388 KiB |
| 11.txt | AC | 1 ms | 3436 KiB |
| 12.txt | AC | 1 ms | 3440 KiB |
| 13.txt | AC | 1 ms | 3380 KiB |
| 14.txt | AC | 1 ms | 3460 KiB |
| 15.txt | AC | 1 ms | 3492 KiB |
| 16.txt | AC | 1 ms | 3396 KiB |
| 17.txt | AC | 1 ms | 3520 KiB |
| 18.txt | AC | 2 ms | 3788 KiB |
| 19.txt | AC | 2 ms | 3656 KiB |
| 20.txt | AC | 2 ms | 3708 KiB |
| 21.txt | AC | 2 ms | 3660 KiB |
| 22.txt | AC | 2 ms | 3704 KiB |
| 23.txt | AC | 2 ms | 3820 KiB |
| 24.txt | AC | 2 ms | 3732 KiB |
| 25.txt | AC | 2 ms | 3728 KiB |
| 26.txt | AC | 216 ms | 39208 KiB |
| 27.txt | AC | 215 ms | 39724 KiB |
| 28.txt | AC | 210 ms | 39172 KiB |
| 29.txt | AC | 212 ms | 39740 KiB |
| 30.txt | AC | 214 ms | 39180 KiB |
| 31.txt | AC | 216 ms | 39212 KiB |
| 32.txt | AC | 214 ms | 39172 KiB |
| 33.txt | AC | 212 ms | 39212 KiB |
| 34.txt | AC | 216 ms | 39268 KiB |
| 35.txt | AC | 210 ms | 39172 KiB |
| 36.txt | AC | 216 ms | 39260 KiB |
| 37.txt | AC | 216 ms | 39132 KiB |
| 38.txt | AC | 211 ms | 39196 KiB |
| 39.txt | AC | 216 ms | 39652 KiB |
| 40.txt | AC | 208 ms | 39740 KiB |
| 41.txt | AC | 213 ms | 39148 KiB |
| 42.txt | AC | 209 ms | 39224 KiB |
| 43.txt | AC | 213 ms | 39328 KiB |
| 44.txt | AC | 218 ms | 39260 KiB |
| 45.txt | AC | 221 ms | 39164 KiB |
| 46.txt | AC | 215 ms | 39268 KiB |