1 条题解
-
0
C :
#include<stdio.h> int m,n,a[55],b[55]; int main() { scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) { int x; scanf("%d",&x); if(x==1) { int r,t; scanf("%d %d",&r,&t); int num=1; for(int s=r;s<=t;s++) b[num++]=a[s]; for(int j=1;j<=n;j++) if(j<r||j>t) b[num++]=a[j]; for(int j=1;j<=n;j++) a[j]=b[j]; } else { for(int j=1;j<=n;j++) b[j]=a[j]; for(int j=1;j<=n;j+=2) a[j]=b[j/2+1]; for(int j=2;j<=n;j+=2) a[j]=b[j/2+n/2]; } } for(int i=1;i<n;i++) printf("%d ",a[i]); printf("%d",a[n]); return 0; }
C++ :
#include <bits/stdc++.h> using namespace std; int a[100],b[100]; int i,j,n,order,x,y,m,k; int main() { cin>>m>>n; //m张牌 for(i = 1; i <= m; i++) { cin>>a[i]; } for(i = 1; i <= n; i++) { cin>>order; //切牌 if(order == 1) { k = 1;//下标清零 cin>>x>>y; for(j = x; j <= y; j++) { b[k] = a[j]; k++; } for(j = 1; j < x; j++) { b[k] = a[j]; k++; } for(j = y + 1; j <= m; j++) { b[k] = a[j]; k++; } //拷贝回去 for(j = 1; j <= m; j++) { a[j] = b[j]; } } else { for(j = 1; j <= m / 2; j++) { b[j*2-1]=a[j]; b[j*2]=a[m/2+j]; } for(j = 1; j <= m; j++) { a[j] = b[j]; } } } for(i = 1; i <= m; i++) { cout<<a[i]<<" "; } }
- 1
信息
- ID
- 2480
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者