This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int>> ed;
void display(int n)
{
	int m=ed.size();
	cout<<n<<' '<<m<<endl;
	for (auto i:ed)
		cout<<i.first<<' '<<i.second<<endl;
}
signed main()
{
	int k;
	cin>>k;
	if (k>=0)
	{
		int n=k+3;
		for (int i=2;i<n;i++)
		{
			ed.push_back({1,i});
			ed.push_back({i,n});
		}
		display(n);
	}
	else
	{
		int a,b=-1;
		for (int i=1;i<=100 && b==-1;i++)
			for (int j=1;j<=100;j++)
				if (j+i-1-i*j==k && j+i+i*j<=1000)
				{
					a=i,b=j;
					break;
				}
		int n=a+b+2;
		for (int i=2;i<=2+a-1;i++)
		{
			ed.push_back({1,i});
			for (int j=2+a;j<n;j++)
				ed.push_back({i,j});
		}
		for (int i=2+a;i<n;i++)
			ed.push_back({i,n});
		display(n);
	}
	
	return 0;
}
Compilation message (stderr)
konstrukcija.cpp: In function 'int main()':
konstrukcija.cpp:39:10: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
   39 |   int n=a+b+2;
      |         ~^~| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |