# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
467054 | mosiashvililuka | Bigger segments (IZhO19_segments) | C++14 | 159 ms | 48200 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,i,j,ii,jj,zx,xc,dp[500009],dp2[500009],f[500009],jm[500009],lef,rig,mid;
vector <long long> v[500009];
int main(){
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>a;
for(i=1; i<=a; i++){
cin>>f[i];jm[i]=jm[i-1]+f[i];
}
for(i=1; i<=a; i++){
dp[i]=1;dp2[i]=jm[i];
for(vector <long long>::iterator it=v[i].begin(); it!=v[i].end(); it++){
/*if(dp[i]<dp[(*it)]+1||(dp[i]==dp[(*it)]+1&&dp2[i]>jm[i]-jm[(*it)])){
dp[i]=dp[(*it)]+1;dp2[i]=jm[i]-jm[(*it)];
}*/
jj=max((*it),jj);
}
if(jj!=0){
if(dp[i]<dp[jj]+1||(dp[i]==dp[jj]+1&&dp2[i]>jm[i]-jm[jj])){
dp[i]=dp[jj]+1;dp2[i]=jm[i]-jm[jj];
}
}
/*for(j=i-1; j>=1; j--){
if(dp2[j]+jm[j]<=jm[i]){
dp[i]=dp[j]+1;dp2[i]=jm[i]-jm[j];
break;
}
}*/
lef=0;rig=a+1;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |