QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#816680#1417. Koalamodwwe0 30ms7904kbC++233.0kb2024-12-16 16:30:482024-12-16 16:30:49

Judging History

你现在查看的是最新测评结果

  • [2024-12-16 16:30:49]
  • 评测
  • 测评结果:0
  • 用时:30ms
  • 内存:7904kb
  • [2024-12-16 16:30:48]
  • 提交

answer

#include<bits/stdc++.h>
#define int   long long
#define ll long long
#define down cout<<'\n';
#define debug cout<<" cucuucucuuu",down
#define NHP     ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
#define modwwe  int t;cin>>t; while(t--)
#define bit(i,j) (i>>j&1)
#define sobit(a) __builtin_popcountll(a)
#define task "test"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define pb push_back
#define mask(k) (1<<k)
#define mp make_pair
#define checktime   cerr << (double)clock() / CLOCKS_PER_SEC * 1000  << " ms";
using namespace std;
#define getchar_unlocked getchar

inline int scan()
{
    char c = getchar_unlocked();
    int x = 0;
    while (c < '0' || c > '9')
    {
        c = getchar_unlocked();
    }
    while (c >= '0' && c <= '9')
    {
        x = (x << 1) + (x << 3) + c - '0';
        c = getchar_unlocked();
    }
    return x;
}
void phongbeo();
const int inf = 2e18;
const ll mod2 = 998244353;
const int  mod1 = 998244353;
const ll base=67;
int add(int x,int y)
{
    if(x+y>=mod2) x-=mod2;
    if(x+y<0)x+=mod2;
    return x+y;
}
struct icd
{
    long double a;
    int b;
};
struct ib
{
    int a;
    int b;
};
struct ic
{
    int a, b, c;
};
struct id
{
    int a, b, c, d;
};
struct ie
{
    int a, b, c, d, e;

};
int n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center;
int  i, s10, s12,k1,k2,k3,s11,lim,w,l,r,ans ;
int kk;
int el = 19;
main()
{
    if(fopen(task".inp","r"))
    {
        fin(task);
        fou(task);
    }
    NHP
    /// cin>>s1;
    //modwwe
    phongbeo(),down
    // checktime
}
int t[400010];
int pos[100010];
int money[100010];
int f[100010];
int dp[100010];
int cost;
vector<int> v;
void upd(int node,int l,int r,int l1,int x)
{
    if(l==r)
    {
        t[node]=max(t[node],x);
        return;
    }
    int mid=l+r>>1;
    if(l1<=mid)
        upd(node<<1,l,mid,l1,x);
    else upd(node<<1|1,mid+1,r,l1,x);
    t[node]=max(t[node<<1],t[node<<1|1]);
}
int get(int node,int l,int r,int l1,int r1)
{
    if(l>r1||r<l1||t[node]==-inf) return -inf;
    if(l>=l1&&r<=r1) return t[node];
    int mid=l+r>>1;
    return max(get(node<<1,l,mid,l1,r1),get(node<<1|1,mid+1,r,l1,r1));
}
/// 12 -1
/// 21 -11
/// 26 -21
void phongbeo()
{
    cin>>pos[0]>>m>>lim>>cost>>n;
    for(int i=1; i<=n; i++)
        cin>>pos[i]>>money[i];
    pos[++n]=m;
    for(int i=0; i<=n; i++)
        v.pb(pos[i]%lim),f[i]=pos[i]/lim;
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    for(int i=0; i<=n; i++)
        pos[i]=lower_bound(v.begin(),v.end(),pos[i]%lim)-v.begin()+1;
    k=v.size();
    upd(1,1,k,pos[0],f[0]*cost);
    for(int i=1; i<=n; i++)
    {
        s2=get(1,1,k,pos[i],k)-f[i]*cost;
        s3=(get(1,1,k,1,pos[i]-1))-f[i]*cost-cost;
        s2=max(s2,s3);
        dp[i]=s2+money[i];
        upd(1,1,k,pos[i],dp[i]+f[i]*cost);
    }
    cout<<dp[n];
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 5716kb

input:

0 1000000000 10000000 1000000000 1000
766594 794913448
1022483 968808438
1860689 180172081
2612232 892233378
2711430 697456060
5861026 124399766
5872975 456109107
7305789 234223988
8856152 121809429
10395082 536579115
10727357 153804291
11383333 264987716
11710888 259494565
12650062 743133027
128343...

output:

-19986219947

result:

wrong answer 1st lines differ - expected: '-20986219947', found: '-19986219947'

Subtask #2:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 30ms
memory: 7904kb

input:

0 1000000000 100 1000000000 100000
10772 16498783
27514 413778647
32249 449299239
53881 944379333
55734 183512821
62266 707895369
62469 904347879
68808 405268726
75498 790216188
79387 728293682
84310 495444679
101416 234259135
104472 579651819
105055 195282273
115325 700682475
126862 424126393
13589...

output:

-9979806033599359

result:

wrong answer 1st lines differ - expected: '-9979807033599359', found: '-9979806033599359'

Subtask #3:

score: 0
Skipped

Dependency #1:

0%