
目录
题目
题解
思路
经验总结
【2022--5--22】 WR:部分正确 16/20
#includeint main() { int n = 0,m=0,i=0,count=0; int a[10000] = {0}; int b[10000] = {0}; scanf("%d", &n); //数组的元素个数 scanf("%d", &m); //向右移位数 for (i = 0; i < n; i++) scanf("%d", a + i); for (i = 0;i<2;i++) { int mid = a[i]; count = i; //走出循环的条件就是全部都已经移位了 for (;;) { int tem = (count - m + n * (m / n)); if (tem < 0) { a[count] = a[count - m + n * (m / n + 1)]; b[count] = 1; count = count - m + n * (m / n + 1); } if (tem >= n) { a[count] = a[count - m + n * (m / n - 1)]; b[count] = 1; count = count - m + n * (m / n -1); } a[count] = a[count - m + n * (m / n )]; b[count] = 1; count = count - m + n * (m / n ); if (b[i + m] == 1 && i + m < n) { a[i + m] = mid; break; } if (b[i + m - n * ((i + m) / n)] == 1 && i + m >= n) { a[i + m - n * ((i + m) / n)] = mid; break; } } } for (i = 0; i < n; i++) {printf("%d", a[i]); if (i != n - 1) printf(" "); } printf("n"); return 0; }
本次博客到这里就结束了,如果你觉得我的文章还不错的话,请给我多多点赞评论哦!