1 条题解
-
0
一道模拟题
#include<bits/stdc++.h> #define r(a) scanf("%d",&a) #define f(i,l,r) for(int i=l;i<=r;i++) #define F(i,r,l) for(int i=r;i>=l;i--) using namespace std; int n,a[1505],b[1505],c[1505]; //b为每个区间男生个数 int main(){ r(n); f(i,1,n){ r(a[i]); b[i]=a[i]-a[i-1];//得男生区间 F(j,i,1){//往左找最近舞伴 if(b[j]){ c[i]=i-j+1;//j为位置 b[j]--;//男生区间减一 break;//找到舞伴直接退出 } } } f(i,1,n){ printf("%d ",c[i]); }//输出 return 0; } /* ①对于一对舞伴男生站在女生的左边。 ②任何一对舞伴之间,要么没有人,要么就有若干对舞伴。 对于条件: 一个女生找到最近的舞伴 ,那么后面女生和其舞伴必夹住这对舞伴 */
- 1
信息
- ID
- 213
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 62
- 已通过
- 39
- 上传者