求助,为什么60分
查看原帖
求助,为什么60分
567642
waioi_lin楼主2022/3/16 23:26
#include <bits/stdc++.h>
#define itn int
#define ll long long
using namespace std;

int poww(int a,int b){
	int res=1;
	while(b){
		if(b&1) res=(ll)res*a;
		b>>=1;
		a=(ll)a*a;
	}
	return res;
}

int main(void){
	int n;
	scanf("%d", &n);
	int ans1=0,ans0=0,tot=0;
	for(int i=1;i<=n;i++){
		int a;
		scanf("%d", &a);
		if(a==1){
			ans1++;
			if(ans0!=0){
				//printf("%d %d\n",ans0-1, poww(2,ans0-1));
				ans1-=poww(2, ans0-1);
				ans0=0;
			}
			//printf("%d\n", ans1);
			if(ans1>=1 && ans1<3){
				tot++;
			}else if(ans1>=3 && ans1<7){
				tot+=2;
			}else if(ans1>=7 && ans1<30){
				tot+=3;
			}else if(ans1>=30 && ans1<120){
				tot+=4;
			}else if(ans1>=120 && ans1<365){
				tot+=5;
			}else if(ans1>=365){
				tot+=6;
			}
		}else{
			ans0++;
		}
		//printf("%d\n", tot);
	}
	printf("%d\n", tot);
	return (0);
}


2022/3/16 23:26
加载中...