# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
22793 | King_God_OnionPringles (#40) | Unifying Values (KRIII5_UV) | C++98 | 500 ms | 392840 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define je 1000000007
int sum[10001];
int dp[10001][10001];
long long hap[10001];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
long long su;
scanf("%lld",&su);
hap[i] = hap[i-1] + su;
}
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){
long long sub = hap[i] - hap[j];
long long happ = hap[j];
if(sub == 0 && happ == 0){
sum[i] = (sum[i] + sum[j]) % je;
}else{
if((happ > 0 && sub < 0) || (happ < 0 && sub > 0)) continue;
if(happ < 0 && sub < 0){ happ = -happ; sub = -sub;}
if(happ % sub == 0 && happ / sub <= i-j){
int pls = dp[j][happ / sub];
sum[i] = (sum[i] + pls) % je;
dp[i][happ / sub + 1] = (dp[i][happ / sub + 1] + pls) % je;
}
}
}
dp[i][1] = 1;
sum[i] = (sum[i] + 1) % je;
}
printf("%d", (sum[n] + je - 1) % je);
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |