1 条题解

  • 0
    @ 2024-12-24 9:49:23

    C :

    #include<stdio.h>
    int main()
    {
        int n,p1,p2,p3,t1,t2,l[101],r[101],i,s,k;
        while(~scanf("%d%d%d%d%d%d",&n,&p1,&p2,&p3,&t1,&t2))
        {s=0;
            for(i=1;i<=n;i++)
                scanf("%d%d",&l[i],&r[i]);
            for(i=1;i<=n;i++)
                s+=p1*(r[i]-l[i]);
            for(i=2;i<=n;i++)
                {
                    k=l[i]-r[i-1];
                if(k>t1)
            {
                s+=t1*p1;
                if((k-t1)>t2)
                {
                    s+=t2*p2;
                    s+=(k-t2-t1)*p3;
                }
                else        s+=(k-t1)*p2;
            }
               else      s+=k*p1;
                }
    
            printf("%d\n",s);
        }
        return 0;
    }
    

    C++ :

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cctype>
    #include<cmath>
    #include<algorithm>
    #include<iostream>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<stack>
    #include<list>
    #include<map>
    #include<set>
    
    #define TEST
    
    #define LL long long
    #define Mt(f, x) memset(f, x, sizeof(f));
    #define rep(i, s, e) for(int i = (s); i <= (e); ++i)
    #ifdef TEST
        #define See(a) cout << #a << " = " << a << endl;
        #define See2(a, b) cout << #a << " = " << a << ' ' << #b << " = " << b << endl;
        #define debug(a, s, e) rep(_i, s, e) {cout << a[_i] << ' ';} cout << endl;
        #define debug2(a, s, e, ss, ee) rep(i_, s, e) {debug(a[i_], ss, ee)}
    #else
        #define See(a)
        #define See2(a, b)
        #define debug(a, s, e)
        #define debug2(a, s, e, ss, ee)
    #endif // TEST
    
    const int MAX = 2e9;
    const int MIN = -2e9;
    const double eps = 1e-8;
    const double PI = acos(-1.0);
    
    using namespace std;
    
    const int N = 105;
    
    int st[N], ed[N];
    
    int main()
    {
        int n, p1, p2, p3, t1, t2;
    //    freopen("in.txt", "r", stdin);
    //    freopen("out.txt", "w", stdout);
        while(~scanf("%d%d%d%d%d%d", &n, &p1, &p2, &p3, &t1, &t2))
        {
            int ans = 0;
            for(int i = 0; i < n; ++i)
            {
                scanf("%d%d", &st[i], &ed[i]);
                ans += (ed[i] - st[i]) * p1;
            }
            for(int i = 1; i < n; ++i)
            {
                int t = st[i] - ed[i - 1];
                if(t < t1)
                {
                    ans += t * p1;
                }
                else if(t < t1 + t2)
                {
                    ans += t1 * p1 + (t - t1) * p2;
                }
                else
                {
                    ans += t1 * p1 + t2 * p2 + (t - (t1 + t2)) * p3;
                }
            }
            printf("%d\n", ans);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    843
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者