1 solutions

  • 0
    @ 2024-12-11 0:49:30

    C++ :

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N(5005);
    int t[N],f[N],c[N];
    //ifstream cin("batch.in");
    //ofstream cout("batch.out");
    int main()
    {
        int n,s;
        cin>>n>>s;
        for (int i=1;i<=n;i++)
        {
            cin>>t[i]>>f[i];
            t[i]+=t[i-1];
            f[i]+=f[i-1];
        }
        fill(c+1,c+n+1,0x7fffffff); 
        for (int k=1;k<=n;k++)
            for (int i=1;i<=k;i++)
                c[k]=min(c[k],c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]));
        cout<<c[n]<<endl;
        return 0;
    }
    
    

    Pascal :

    var n,s,i,k:longint;
        t:array[0..5005]of longint;
        f:array[0..5005]of longint;
        c:array[0..5005]of longint;
    begin
         readln(n);
         readln(s);
         for i:=1 to 5004 do c[i]:=10000;
         for i:=1 to n do
         begin
           read(t[i],f[i]);
           t[i]:=t[i-1]+t[i];
           f[i]:=f[i-1]+f[i];
         end;
         for k:=1 to n do
             for i:=1 to k do
                 if(c[k]>c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]))
                 then c[k]:=c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]);
         writeln(c[n]);
         readln;
         readln;
    end.   
    
    • 1

    Information

    ID
    736
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By