답안 #22711

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
22711 2017-04-30T06:47:10 Z 현우야 이거 플로우야(#903, waylight3, pinebananais, ae04071) Unifying Values (KRIII5_UV) C++11
0 / 7
6 ms 1312 KB
#include <stdio.h>

typedef long long lli;
const lli mod=1e9+7;
int n;
lli sum[10001];
int chk[10001];
lli cnt[10001];

lli pow(lli a, lli p) {
	lli res=1;
	while(p) {
		if(p&1) res=(res*a)%mod;
		a=(a*a)%mod;
		p>>=1;
	}
	return res;
}

int main() {
	lli zsum=0;

	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",sum+i);
		sum[i]+=sum[i-1];
		if(sum[i]==0) ++zsum;
	}
	--zsum;

	lli res=0;
	for(int i=1;i<n;i++) {
		if(sum[i]==0) {
			--zsum;
			if(sum[n]!=0) continue;
			res=(res+pow(2,zsum))%mod;
		}
		else {
			if((sum[n]>0&&sum[i]>0||sum[n]<0&&sum[i]<0)&&sum[n]%sum[i]!=0)
				continue;
			lli k=sum[n]/sum[i];
			if(k==1||k>n) continue;

			cnt[1]=1; chk[1]=i;
			for(int j=i+1;j<=n;j++) {
				if((sum[j]>0&&sum[i]>0||sum[j]<0&&sum[i]<0)&&sum[j]%sum[i]==0) {
					lli k=sum[j]/sum[i];
					if(k>n||k==1) continue;
					if(chk[k-1]!=i) continue;
					if(chk[k]!=i) {
						chk[k]=i;
						cnt[k]=0;
					}
					if(i==7) printf("%d\n",j);
					cnt[k]+=cnt[k-1];
				}
			}
			if(chk[k-1]!=i) continue;
			res=(res+cnt[k])%mod;
		}
	}

	printf("%lld\n",res);

	return 0;
}

Compilation message

UV.cpp: In function 'int main()':
UV.cpp:39:16: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
    if((sum[n]>0&&sum[i]>0||sum[n]<0&&sum[i]<0)&&sum[n]%sum[i]!=0)
                ^
UV.cpp:46:17: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
     if((sum[j]>0&&sum[i]>0||sum[j]<0&&sum[i]<0)&&sum[j]%sum[i]==0) {
                 ^
UV.cpp:23:16: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
UV.cpp:25:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld",sum+i);
                      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1312 KB Output is correct
2 Correct 0 ms 1312 KB Output is correct
3 Correct 0 ms 1312 KB Output is correct
4 Correct 3 ms 1312 KB Output is correct
5 Correct 3 ms 1312 KB Output is correct
6 Correct 0 ms 1312 KB Output is correct
7 Incorrect 3 ms 1312 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 1312 KB Output isn't correct
2 Halted 0 ms 0 KB -