結果
問題 | No.466 ジオラマ |
ユーザー |
![]() |
提出日時 | 2019-06-25 23:48:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 28 ms / 2,000 ms |
コード長 | 1,741 bytes |
コンパイル時間 | 1,674 ms |
コンパイル使用メモリ | 174,872 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 12:45:23 |
合計ジャッジ時間 | 5,503 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 83 |
ソースコード
#include "bits/stdc++.h"using namespace std;using ll = long long;using ld = long double;const double PI = 3.1415926535897932384626433832795;const ll MOD = 1000000007;const int dx[] = { 0, 1, 0, -1 };const int dy[] = { -1, 0, 1, 0 };int gcd(int x, int y) { return y ? gcd(y, x % y) : abs(x); }ll gcd(ll x, ll y) { return y ? gcd(y, x % y) : abs(x); }int lcm(int x, int y) { return x / gcd(x, y) * y; }ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }int main() {ios::sync_with_stdio(false);cin.tie(0);int a, b, c, d;cin >> a >> b >> c >> d;if (a == 1 && b == 1 && c == 1) {cout << -1 << endl;return 0;}a -= c;b -= c;vector<int> vecA, vecB, vecC;int index = 2;if (c == 0) {vecA.push_back(0);vecB.push_back(1);} else {(a > 0 ? vecA : vecC).push_back(0);(b > 0 ? vecB : vecC).push_back(1);for (int i = 0; i < c - (a == 0) - (b == 0); i++) {vecC.push_back(index++);}}for (int i = 0; i < a - 1; i++) {vecA.push_back(index++);}for (int i = 0; i < b - 1; i++) {vecB.push_back(index++);}vector<pair<int, int>> g;for (int i = 0; i < (int)vecA.size() - 1; i++) {g.emplace_back(vecA[i], vecA[i + 1]);}for (int i = 0; i < (int)vecB.size() - 1; i++) {g.emplace_back(vecB[i], vecB[i + 1]);}for (int i = 0; i < (int)vecC.size() - 1; i++) {g.emplace_back(vecC[i], vecC[i + 1]);}if (a != 0 && c != 0) {g.emplace_back(0, vecC[0]);}if (b != 0 && c != 0) {g.emplace_back(1, vecC[0]);}if (a == 0 && b == 0) {g.emplace_back(1, 0);}if ((int)g.size() > d) {cout << -1 << endl;return 0;}cout << a + b + c << " " << g.size() << endl;for (auto p : g) {cout << p.first << " " << p.second << endl;}return 0;}