Submission #696230

#TimeUsernameProblemLanguageResultExecution timeMemory
696230aSSSdHolding (COCI20_holding)C++14
110 / 110
91 ms100840 KiB
#include <bits/stdc++.h> using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int rnd(int l,int r) { return l+rng()%(r-l+1); } #define fasty ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define forinc(x,a,b) for(int x=a;x<=b;x++) #define fordec(x,a,b) for(int x=a;x>=b;x--) #define iii pair<ii,int> #define fi first #define se second #define ii pair<int,int> #define getbit(x,i) ((x>>(i))&1ll) #define batbit(x,i) (x|(1ll<<(i))) #define tatbit(x,i) (x&~(1ll<<(i))) #define endl '\n' //#define int long long #define pb push_back #define ll long long const int N = 103; const int K = 1e4+3; int n,L,R,k; int a[N]; int f[N][N][2510]; main() { fasty; cin >> n >> L >> R >> k; vector<ii> c; vector<ii> d; k=min(k , n*n / 4); int sum=0; forinc(i,1,n) { cin >> a[i]; if(i<L || i > R) c.pb({a[i] , i}); else { d.pb({a[i] ,i}); sum+=a[i]; } } forinc(i,0,n) forinc(j,0,n) forinc(t,0,k) f[i][j][t]=sum; int n1 = c.size(); int n2 = d.size(); int res=sum; forinc(i,1,n1) forinc(j,1,n2) forinc(t,0,k) { int cost = abs(c[i-1].se - d[j-1].se); f[i][j][t] = min(f[i-1][j][t] , f[i][j-1][t]); if(t) f[i][j][t] = min(f[i][j][t] , f[i][j][t-1]); if(t>=cost) { f[i][j][t] = min(f[i-1][j-1][t-cost] - d[j-1].fi + c[i-1].fi , f[i][j][t]); } } forinc(i,1,n1) forinc(j,1,n2) forinc(t,0,k) { res = min(res , f[i][j][t]); } cout << res; }

Compilation message (stderr)

holding.cpp:27:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   27 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...