233042026-01-18 18:02:52999Rendőrségi Üldözés 4cpp17Hibás válasz 55/100640ms235840 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long


//dp[i][j]:
/*
    mikor mehetsz tovabb i-tol leghamarabb ha j darab csalas van hatra.
*/
signed main() {
    int n,r,t,l;cin>>n>>r>>t>>l;
    vector<int> be(n),v(n);
    vector<vector<int>> dp(n,vector<int>(r+1,INT_MAX));
    for(int i = 0;i<n;i++){
        cin>>be[i];
        if(i>0){
            v[i]=be[i]-be[i-1];
            dp[i][r]=dp[i-1][r]+v[i];
        }
        else{
            v[0]=be[0];
            dp[0][r]=be[0];
        } 
        if(dp[i][r]%(2*t)>=t)dp[i][r]+=2*t-dp[i][r]%(2*t);
    }
    for(int i = 1;i<n;i++){
        //cout<<dp[i][r]<<' ';
        for(int j=0;j<r;j++){
            dp[i][j]=dp[i-1][j]+v[i];
            if(dp[i][j]%(2*t)>=t)dp[i][j]+=2*t-dp[i][j]%(2*t);
            if(dp[i][j]>dp[i-1][j+1]+v[i])dp[i][j]=dp[i-1][j+1]+v[i];
        }
    }
    int mx=INT_MAX;
    for(int j=0;j<=r;j++){
        mx=min(mx,dp[n-1][j]);
    }
    cout<<l-be[n-1]+mx;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask20/10
3Elfogadva1ms548 KiB
4Hibás válasz1ms316 KiB
5Elfogadva1ms508 KiB
6Hibás válasz1ms380 KiB
7Hibás válasz1ms316 KiB
subtask315/15
8Elfogadva1ms508 KiB
9Elfogadva1ms324 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
subtask40/15
12Elfogadva1ms384 KiB
13Elfogadva1ms316 KiB
14Hibás válasz1ms316 KiB
15Elfogadva1ms316 KiB
subtask525/25
16Elfogadva1ms316 KiB
17Elfogadva1ms316 KiB
18Elfogadva1ms316 KiB
19Elfogadva1ms316 KiB
20Elfogadva1ms500 KiB
subtask615/15
21Elfogadva1ms316 KiB
22Elfogadva2ms316 KiB
23Elfogadva1ms460 KiB
24Elfogadva2ms540 KiB
25Elfogadva2ms564 KiB
subtask70/20
26Elfogadva14ms3212 KiB
27Elfogadva30ms8720 KiB
28Elfogadva71ms24376 KiB
29Elfogadva232ms79236 KiB
30Hibás válasz640ms235840 KiB