提出 #56158689
ソースコード 拡げる
#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 solve(std::istream& is, std::ostream& os) {
Num n,d;
is >> n >> d;
if ((n - 1) < (2 * d)) {
os << "No\n";
return;
}
if ((n - 1) == (2 * d)) {
os << "Yes\n";
for(Num i{1}; i<=n; ++i) {
for(Num j{i+1}; j<=n; ++j) {
os << i << " " << j << "\n";
}
}
return;
}
std::vector<std::pair<Num,Num>> ps;
for(Num dist{1}; dist<=d; ++dist) {
const auto len = std::lcm(dist, n) / dist;
const auto n_cycle = n / len;
for(Num ofs{0}; ofs<n_cycle; ++ofs) {
Num from = ofs;
for(Num i{0}; i<len; ++i) {
const Num to = (from + dist) % n;
ps.push_back(std::make_pair(from+1, to+1));
from = to;
}
}
}
os << "Yes\n";
for(const auto& [from, to] : ps) {
os << from << " " << to << "\n";
}
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00-sample-001.txt, 00-sample-002.txt |
| All |
00-sample-001.txt, 00-sample-002.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00-sample-001.txt |
AC |
1 ms |
3644 KiB |
| 00-sample-002.txt |
AC |
1 ms |
3452 KiB |
| 01-001.txt |
AC |
1 ms |
3688 KiB |
| 01-002.txt |
AC |
1 ms |
3640 KiB |
| 01-003.txt |
AC |
1 ms |
3508 KiB |
| 01-004.txt |
AC |
1 ms |
3560 KiB |
| 01-005.txt |
AC |
1 ms |
3644 KiB |
| 01-006.txt |
AC |
1 ms |
3512 KiB |
| 01-007.txt |
AC |
1 ms |
3456 KiB |
| 01-008.txt |
AC |
1 ms |
3492 KiB |
| 01-009.txt |
AC |
1 ms |
3548 KiB |
| 01-010.txt |
AC |
1 ms |
3544 KiB |
| 01-011.txt |
AC |
1 ms |
3496 KiB |
| 01-012.txt |
AC |
1 ms |
3544 KiB |
| 01-013.txt |
AC |
1 ms |
3624 KiB |
| 01-014.txt |
AC |
1 ms |
3508 KiB |
| 01-015.txt |
AC |
1 ms |
3628 KiB |
| 01-016.txt |
AC |
1 ms |
3748 KiB |
| 01-017.txt |
AC |
2 ms |
3772 KiB |
| 01-018.txt |
AC |
1 ms |
3456 KiB |
| 01-019.txt |
AC |
8 ms |
4384 KiB |
| 01-020.txt |
AC |
8 ms |
4112 KiB |
| 01-021.txt |
AC |
8 ms |
4192 KiB |
| 01-022.txt |
AC |
8 ms |
4160 KiB |
| 01-023.txt |
AC |
8 ms |
4156 KiB |
| 01-024.txt |
AC |
8 ms |
4124 KiB |
| 01-025.txt |
AC |
8 ms |
4296 KiB |
| 01-026.txt |
AC |
8 ms |
4292 KiB |
| 01-027.txt |
AC |
1 ms |
3504 KiB |
| 01-028.txt |
AC |
9 ms |
4208 KiB |
| 01-029.txt |
AC |
1 ms |
3480 KiB |
| 01-030.txt |
AC |
8 ms |
4156 KiB |
| 01-031.txt |
AC |
1 ms |
3488 KiB |
| 01-032.txt |
AC |
7 ms |
3484 KiB |
| 01-033.txt |
AC |
1 ms |
3552 KiB |
| 01-034.txt |
AC |
8 ms |
4240 KiB |