Why can't this program pass problem C?(HELP)

Revision en4, by lllooolll, 2019-10-06 15:55:59

The problem


#include <bits/stdc++.h> using namespace std; const int maxn=1000005; long long c[maxn], sum[maxn],n,k,m,N=1000000; vector<pair<int, int> > v[maxn]; int lowbit(int i) { return i&(-i); } void mo(long long pos,long long dt){ int s=(long long)dt*pos; for (;pos<=N;pos+=lowbit(pos)) { c[pos]+=dt; sum[pos]+=s; } } long long find(){ int ta=k,e=0; long long s=0; for (int i=20;i>=0;i--) { if(e+(1<<i)>N) continue; if(c[e+(1<<i)]<ta) { ta-=c[e+(1<<i)]; s+=sum[e+(1<<i)]; e+=(1<<i); } } if (ta && e+1<=N){ s+=(long long)ta*(e+1); } return s; } int main(){ int l,r,c,p; cin>>n>>k>>m; for (int i=1;i<=m;i++) { scanf("%d%d%d%d",&l,&r,&c,&p); v[l].push_back(make_pair(c, p)); v[r+1].push_back(make_pair(-c, p)); } long long sum=0; for (int i=1;i<=n;i++){ for (int j=0;j<v[i].size();j++){ long long pp=v[i][j].first,pos=v[i][j].second; mo(pos,pp); } sum+=find(); } printf("%d",sum); }

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English lllooolll 2019-10-06 15:55:59 80
en3 English lllooolll 2019-10-06 14:25:52 17 Tiny change: '\n~~~~~\nYour code here...\n#include' -> '\n~~~~~\n\n#include'
en2 English lllooolll 2019-10-06 14:23:32 39
en1 English lllooolll 2019-01-23 05:35:57 1018 Initial revision (published)