Submission #1318049

#TimeUsernameProblemLanguageResultExecution timeMemory
1318049ElayV13Bigger segments (IZhO19_segments)C++20
0 / 100
0 ms332 KiB
//g++ -o sol sol.cpp //cd C:\Users\Asus-1\OneDrive\Desktop #include <bits/stdc++.h> using namespace std; #define int long long #define ld long double const int INF = 1e18; const int N = 100001; #define S(a) a.begin() , a.end() #define pb push_back #define READ(l , r , a) for(int i = l;i <= r;i++) cin >> a[i] #define printV(l , r , a) for(int i = l;i <= r;i++) cout << a[i] << ' '; #define pii pair < int , int > int n; int a[500001] , p[500001]; pair < int , int > dp[500001]; signed main(){ ios_base::sync_with_stdio(); cin.tie(0); cout.tie(0); cin >> n; READ(1 , n , a); p[1] = a[1]; for(int i = 2;i <= n;i++) p[i] = p[i - 1] + a[i]; dp[1] = {1 , a[1]}; for(int i = 2;i <= n;i++) { for(int j = i - 1;j >= 1;j--){ if(p[i] - p[j] >= dp[j].second) { int nw_res = dp[j].first + 1; if(dp[i].first < nw_res) dp[i] = {nw_res , p[i] - p[j]}; else dp[i].second = min(dp[i].second , p[i] - p[j]); } } } cout << dp[n].first << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...