输入与输出
查看原帖
输入与输出
107432
ダブルリーチ楼主2021/5/23 09:13

代码如下

#include<bits/stdc++.h>
#define fs(i,x,y,z) for(int i=x;i<=y;i+=z)
const int N=1000001;
using namespace std;
int n,s[N<<1],ans,mx;
int main(){
//	freopen("move.in","r",stdin);
//	freopen("move.out","w",stdout);
	scanf("%d",&n);
	fs(i,1,n,1){
		int a;scanf("%d",&a);
		s[a]++;
	}
	fs(i,1,N<<1,1){if(s[i]!=0&&i<50) mx=max(mx,i);
		s[i+1]+=(s[i]/2);
		s[i]%=2;
		if(s[i]) ans++;
		if(i<10) printf("%d\n",ans);//P
	}
	//fs(i,1,mx,1) printf("%d ",s[i]);
	printf("%d",ans);//Q
	return 0;
}

输入:

5
1 1 2 3 3 

输出:

0
0
1
2
2
2
2
2
2
0

其中前边几个数是调试代码中输出的ans,最后一行是最后输出的ans

在洛谷ide上也跑了,也会出现这样的问题

求助是我哪里写错了

2021/5/23 09:13
加载中...