首页 > 代码库 > Codeforces Round #275 (Div. 2) C
Codeforces Round #275 (Div. 2) C
题目传送门:http://codeforces.com/contest/483/problem/C
题意分析:题目意思没啥好说的。
去搞排列列举必须TLE,那么就想到构造。 1,n,2,n-1,3,n-2这个样子。k/2就是需要交换的元素对数,还需要考虑一下k的奇偶去判断没交换的元素是顺序输出还是逆序输出。自己尝试下几个数据就明白了。
代码:
#include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <iostream> using namespace std; typedef long long LL; int p[100005]; int main() { int n,k; while(cin>>n>>k) { for(int i=0; i<n; i++) { p[i]=i+1; } int flag=0; int temp=n-1; int m=k/2; int x=k; while(m--) { printf("%d ",p[flag]); printf("%d ",p[temp]); flag++; temp--; } if(x%2==0) { for(int i=temp; i>=flag; i--) { printf("%d ",p[i]); } } if(x%2==1) { for(int i=flag; i<=temp; i++) { printf("%d ",p[i]); } } printf("\n"); } }
Codeforces Round #275 (Div. 2) C
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。