답안 #845739

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
845739 2023-09-06T15:11:21 Z vjudge1 Konstrukcija (COCI20_konstrukcija) C++17
0 / 110
1 ms 348 KB
#include <bits/stdc++.h>
#define pb push_back
#define int int64_t
using namespace std;

constexpr static int MXLOG = 62;

int32_t main()
{
	int k;
	cin >> k;
	int ccc = (k < 0) ? 0 : 1;
	vector<int> v;
	vector<array<int, 2>> e;
	int nxt = 1;
	for (int i = 1; i <= 3; i++)
		e.pb({0, nxt++});
	array<int, 3> last = {1, 2, 3};
	if (ccc == 0)
	{
		e.pb({0, nxt});
		v.pb(nxt++);
	}
	for (int i = 1; i < MXLOG; i++)
	{
		if (ccc == (i&1))
		{
			vector<int> vv;
			for (int j = 0; j < 2; j++)
				e.pb({last[j], nxt});
			v.pb(nxt++);
			for (int j = 0; j < 3; j++)
				e.pb({last[j], nxt});
			v.pb(nxt++);
		}
		for (int j = 0; j < 3; j++)
			for (int l = 0; l < 3; l++)
				e.pb({last[l], nxt+j});
		for (int j = 0; j < 3; j++)
			last[j] = nxt++;
	}
	for (int i = 0; i < 3; i++)
	{
		e.pb({nxt-1, nxt});
		nxt++;
	}
	k = abs(k);
	for (int i = 0; i < MXLOG; i++)
		if (k&(static_cast<int>(1)<<i))
			e.pb({v[i], nxt-1});
	cout << nxt << " " << e.size() << "\n";
	for (auto [a, b] : e)
		cout << (a+1) << " " << (b+1) << "\n";
}

# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong answer.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Wrong answer.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong answer.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Wrong answer.
2 Halted 0 ms 0 KB -