結果
| 問題 | No.2929 Miracle Branch | 
| コンテスト | |
| ユーザー |  pengin_2000 | 
| 提出日時 | 2024-10-12 16:35:10 | 
| 言語 | C (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 39 ms / 2,000 ms | 
| コード長 | 753 bytes | 
| コンパイル時間 | 144 ms | 
| コンパイル使用メモリ | 30,336 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-10-12 16:35:18 | 
| 合計ジャッジ時間 | 6,731 ms | 
| ジャッジサーバーID (参考情報) | judge / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 43 | 
ソースコード
#include<stdio.h>
long long int cnt[200005], cc;
int main()
{
	long long int x;
	scanf("%lld", &x);
	long long int i, cc = 0, j, k;
	for (i = 3; i < 200005; i++)
	{
		while (x % i == 0)
		{
			x /= i;
			cnt[cc] = i;
			cc++;
		}
	}
	if (x > 1)
	{
		cnt[cc] = x;
		cc++;
	}
	if (cc == 0)
	{
		cnt[cc] = 1;
		cc++;
	}
	long long int n = 0;
	for (i = 0; i < cc; i++)
		n += cnt[i] + 1;
	if (n > 200000)
	{
		printf("-1\n");
		return 0;
	}
	printf("%lld\n", n);
	j = cc + 1;
	for (i = 0; i < cc; i++)
	{
		for (k = 0; k < cnt[i]; k++, j++)
			printf("%d %d\n", i + 1, j);
	}
	for (i = 0; i < cc - 1; i++)
		printf("%d %d\n", i + 1, i + 2);
	for (i = 0; i < cc; i++)
		printf("b ");
	for (i = cc; i < n - 1; i++)
		printf("g ");
	printf("g\n");
	return 0;
}
            
            
            
        