列表

详情


NC200282. Fuse the Cube Fragment

描述

在解密完那条古怪的序列后的不久,Vanis收到了一个奇怪的包裹,寄件人地址竟然写着火星 ()。包裹里有一堆蕴含着能量的小晶块 (Cube Fragment),经过一些实验,Vanis发现这些小晶块具有如下性质:

1. 有n种不同的小晶块,编号1至n,每种晶块都蕴含1个单位的能量。
2. 两种晶块(第i种和第j种)能够稳定融合,当且仅当,其中表示不能整除。

Vanis想知道如果每种小晶块只使用一个,能够融合成的稳定的大晶体最大能蕴含多少个单位的能量,他想请你给出两种不同的融合方案。

两种融合方案是不同的,当且仅当至少存在一种晶块出现在一种方案中而不出现在另一种方案中。

输入描述

输入一行一个整数n,表示小晶块的种类数。

数据规范:
* .

输出描述

输出两行,表示两种不同的融合方案,每行输出一种,使用编号表示使用哪种小晶块,每行输出内的编号之间使用一个空格符分隔。

注意:
1. 融合顺序无关,即被认为是同一种融合方案。
2. 满足条件的融合方案可能不止有两种,任意合理的两种融合方案都会被认为是正确的。

示例1

输入:

5

输出:

3 2 5
3 4 5

示例2

输入:

7

输出:

2 3 5 7
4 6 5 7

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 8ms, 内存消耗: 508K, 提交时间: 2020-06-14 13:20:47

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	for(int i=n/2+1;i<=n;++i)
		cout<<i<<' ';

	cout<<endl;
	if(n%2==0){
		for(int i=n/2;i<n;++i)
			cout<<i<<' ';
	}else{
		for(int i=n/2;i<n-1;++i)
			cout<<i<<' ';

		cout<<n;
	}
	cout<<endl;
	return 0;
}

Python3(3.5.2) 解法, 执行用时: 44ms, 内存消耗: 3912K, 提交时间: 2020-09-27 16:53:38

n=int(input())
for i in range(n//2+1,n+1):
    print(i,end=' ')
print()
if n%2==0:
    for i in range(n//2,n):
        print(i,end=' ')
else:
    for i in range(n//2,n-1):
        print(i,end=' ')
    print(n)
    
    

C++ 解法, 执行用时: 7ms, 内存消耗: 548K, 提交时间: 2021-12-22 23:28:41

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int i=n/2+1;
	for(;i<=n;i++) cout<<i<<' ';
	cout<<endl<<2<<' ';
	for(i=3;i<=n;i+=2) cout<<i<<' ';
	return 0;
} 

上一题