Submission #66347938
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
// vector<int>e[202020],ee[202020];
struct node{
int l,r;
int ma;
int lz;
};
node t[1208080];
void pushup(int p){
if(t[p].l==t[p].r)return;
t[p].ma=max(t[p*2].ma,t[p*2+1].ma);
}
void spread(int p){
t[p*2].lz+=t[p].lz;
t[p*2].ma+=t[p].lz;
t[p*2+1].lz+=t[p].lz;
t[p*2+1].ma+=t[p].lz;
t[p].lz=0;
}
void build(int p,int l,int r){
t[p].l=l;
t[p].r=r;
if(l==r){
return;
}
int mid=l+r>>1;
build(p*2,l,mid);
build(p*2+1,mid+1,r);
pushup(p);
}
int res=0;
void update(int p,int l,int r,int x){
if(t[p].l>=l&&t[p].r<=r){
t[p].ma=x;
return;
}
int mid=t[p].l+t[p].r>>1;
if(mid>=l)update(p*2,l,r,x);
if(mid<r)update(p*2+1,l,r,x);
pushup(p);
}
int ask(int p,int l,int r){
if(t[p].l>=l&&t[p].r<=r){
return t[p].ma;
}
int res=0;
int mid=t[p].l+t[p].r>>1;
if(mid>=l)res=max(ask(p*2,l,r),res);
if(mid<r)res=max(res,ask(p*2+1,l,r));
pushup(p);
return res;
}
pair<int,int>a[502020];
int mk[1202020];
vector<int>g[202020];
pair<int,int>out[202020];
int mx[1010][2]; //第i行的最大值编号
int m;
// int dp[1010122];
// string s[220];
set<pair<int,int>>st;
int sz[202020];
int fa[202020];
const int mod=998244353;
int power(int a,int b){
int res=1;
while(b){
if(b&1)res=res*a%mod;
b>>=1;
a=a*a%mod;
}
return res;
}
int inv(int x){
return power(x,mod-2);
}
string ss,tt;
int mid;
int jj=1;
vector<int>v[2];
int op[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int dp[502020];
int dp2[202020][2];
int f(int y){
if(y%400==0)return 1;
if(y%100==0)return 0;
if(y%4==0)return 1;
return 0;
}
int s[292929],vis[202020];
void dfs(int x){
vis[x]=1;
// cout<<x<<'\n';
for(auto i:g[x]){
if(vis[i])continue;
dfs(i);
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
srand(time(0));
int _=1;
// cout<<10*inv(3)%mod<<'\n';
int i;
// cin>>_;
while(_--){
double x,y,r1;
int n,i,j,k,d,r;
cin>>n>>d>>r;
for(i=1;i<=n;i++){
cin>>a[i].first;
a[i].second=i;
}
build(1,1,n);
sort(a+1,a+n+1);
queue<pair<int,int>>q;
int res=0;
for(i=1;i<=n;i++){
if(i>=d){
update(1,a[i-d].second,a[i-d].second,dp[i-d]);
}
// if(a[i].second==3){
// for(j=1;j<=n;j++){
// cout<<ask(1,j,j)<<' ';
// }
// cout<<'\n';
// }
int temp=ask(1,max(1ll,a[i].second-r),min(n,a[i].second+r));
res=max(res,temp);
// update(1,a[i].second,a[i].second,temp+1);
dp[i]=temp+1;
// cout<<a[i].second<<" "<<dp[i]<<'\n';
}
cout<<res;
}
}
/*
100 100 1
0 0 2
0 -1 1 2
*/
Submission Info
Submission Time
2025-05-31 22:03:25+0900
Task
F - Athletic
User
qsmcgogo
Language
C++ 20 (gcc 12.2)
Score
500
Code Size
3211 Byte
Status
AC
Exec Time
745 ms
Memory
48272 KiB
Compile Error
Main.cpp: In function ‘void build(long long int, long long int, long long int)’:
Main.cpp:30:14: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
30 | int mid=l+r>>1;
| ~^~
Main.cpp: In function ‘void update(long long int, long long int, long long int, long long int)’:
Main.cpp:41:19: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
41 | int mid=t[p].l+t[p].r>>1;
| ~~~~~~^~~~~~~
Main.cpp: In function ‘long long int ask(long long int, long long int, long long int)’:
Main.cpp:52:19: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
52 | int mid=t[p].l+t[p].r>>1;
| ~~~~~~^~~~~~~
Main.cpp: In function ‘int main()’:
Main.cpp:116:16: warning: unused variable ‘x’ [-Wunused-variable]
116 | double x,y,r1;
| ^
Main.cpp:116:18: warning: unused variable ‘y’ [-Wunused-variable]
116 | double x,y,r1;
| ^
Main.cpp:116:20: warning: unused variable ‘r1’ [-Wunused-variable]
116 | double x,y,r1;
| ^~
Main.cpp:117:17: warning: unused variable ‘j’ [-Wunused-variable]
117 | int n,i,j,k,d,r;
| ^
Main.cpp:117:19: warning: unused variable ‘k’ [-Wunused-variable]
117 | int n,i,j,k,d,r;
| ^
Main.cpp:113:9: warning: unused variable ‘i’ [-Wunused-variable]
113 | int i;
| ^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
500 / 500
Status
Set Name
Test Cases
Sample
00_sample_00.txt, 00_sample_01.txt
All
00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt
Case Name
Status
Exec Time
Memory
00_sample_00.txt
AC
2 ms
3592 KiB
00_sample_01.txt
AC
2 ms
3592 KiB
01_test_00.txt
AC
2 ms
3824 KiB
01_test_01.txt
AC
2 ms
3680 KiB
01_test_02.txt
AC
2 ms
3516 KiB
01_test_03.txt
AC
2 ms
3668 KiB
01_test_04.txt
AC
3 ms
3828 KiB
01_test_05.txt
AC
3 ms
3816 KiB
01_test_06.txt
AC
268 ms
42692 KiB
01_test_07.txt
AC
721 ms
48092 KiB
01_test_08.txt
AC
109 ms
23368 KiB
01_test_09.txt
AC
80 ms
14120 KiB
01_test_10.txt
AC
95 ms
23604 KiB
01_test_11.txt
AC
481 ms
46724 KiB
01_test_12.txt
AC
107 ms
24232 KiB
01_test_13.txt
AC
5 ms
4316 KiB
01_test_14.txt
AC
72 ms
14776 KiB
01_test_15.txt
AC
68 ms
13884 KiB
01_test_16.txt
AC
329 ms
43884 KiB
01_test_17.txt
AC
452 ms
45612 KiB
01_test_18.txt
AC
577 ms
48200 KiB
01_test_19.txt
AC
745 ms
48200 KiB
01_test_20.txt
AC
374 ms
48076 KiB
01_test_21.txt
AC
700 ms
48144 KiB
01_test_22.txt
AC
412 ms
48040 KiB
01_test_23.txt
AC
705 ms
48156 KiB
01_test_24.txt
AC
326 ms
48200 KiB
01_test_25.txt
AC
82 ms
48204 KiB
01_test_26.txt
AC
83 ms
48136 KiB
01_test_27.txt
AC
186 ms
48200 KiB
01_test_28.txt
AC
186 ms
48120 KiB
01_test_29.txt
AC
149 ms
48204 KiB
01_test_30.txt
AC
341 ms
48148 KiB
01_test_31.txt
AC
327 ms
48148 KiB
01_test_32.txt
AC
361 ms
48040 KiB
01_test_33.txt
AC
371 ms
48048 KiB
01_test_34.txt
AC
364 ms
48272 KiB
01_test_35.txt
AC
356 ms
48112 KiB
01_test_36.txt
AC
2 ms
3664 KiB