游客 Signup | Login
中文 | En

1247 - C语言10.17

输入n个整数,使前面的n-m个数顺序向后移动m个位置,最后的m个数变成最前面的m个数。通过函数实现以上的功能。

Input

第一行包含两个用空格隔开的整数n和m,保证n>m且n不超过50。第二行包含n个用空格隔开的整数。

Output

输出进行题目描述操作之后的n个整数,每个整数之后输出一个空格。

请注意行尾输出换行。

Examples

Input

6 2
1 2 3 4 5 6

Output

5 6 1 2 3 4 

Solution C

#include<stdio.h>
int main()
{
	int n,m,a[50],i;
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=n-m;i<n;i++)
		printf("%d ",a[i]);
	for(i=0;i<n-m;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

Solution C++

#include <stdio.h>
int main() {
	void update(int x[], int n, int m);
	int a[50];
	int n, m, i;
	scanf("%d %d", &n, &m);
	for (i = 0;i < n;i++)
		scanf("%d", &a[i]);
	update(a, n, m);
	for (i = 0;i < n;i++)
		printf("%d ", a[i]);
	printf("\n");
	return 0;
}
void update(int x[], int n, int m) {
	int tmp[50];
	int i;
	for (i = 0;i < n;i++)
		tmp[i] = x[i];
	for (i = n - m - 1;i >= 0;i--)
		x[i + m] = x[i];
	for (i = 0;i < m;i++)
		x[i] = tmp[i + (n - m)];
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题