이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fr first
#define sc second
const long long inf=1e18;
long long n,m,d,ps[2][400069];
pair<long long,pair<long long,long long>> a[400069];
int main()
{
long long i,ii,k,l,w,c[2]={0,0},e,p,z=0;
scanf("%lld%lld%lld",&n,&m,&d);
for(i=1;i<=n;i++)
{
scanf("%lld%lld%lld",&k,&w,&l);
a[i*4-3]={k-1,{0,1}};
a[i*4-2]={k+w-1,{1,1}};
a[i*4-1]={l,{0,-1}};
a[i*4]={l,{1,-1}};
}
sort(a+1,a+n*4+1);
for(i=1;i<=n*4;i++)
{
k=a[i].fr;
e=a[i].sc.fr;
w=a[i].sc.sc;
for(ii=0;ii<2;ii++)
{
ps[ii][i]=ps[ii][i-1];
}
c[e]+=w;
if(!e)
{
if(c[0]>=m&&c[0]-w<m)
{
ps[0][i]-=c[1];
ps[1][i]-=k*c[1];
}
else if(c[0]<m&&c[0]-w>=m)
{
ps[0][i]+=c[1];
ps[1][i]+=k*c[1];
}
}
else if(c[0]>=m)
{
ps[0][i]-=w;
ps[1][i]-=k*w;
}
p=upper_bound(a+1,a+n*4+1,mp(k-d,mp(inf,inf)))-a-1;
z=max(z,ps[1][i]+k*-ps[0][i]-(ps[1][p]+(k-d)*-ps[0][p]));
}
printf("%lld\n",z);
}
컴파일 시 표준 에러 (stderr) 메시지
autobahn.cpp: In function 'int main()':
autobahn.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
17 | scanf("%lld%lld%lld",&n,&m,&d);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
autobahn.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
20 | scanf("%lld%lld%lld",&k,&w,&l);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |