ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#200091 | #2700. 数列 | wosile | 100 | 133ms | 5104kb | C++11 | 804b | 2023-12-28 08:57:39 | 2023-12-28 13:54:36 |
answer
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
int a[1000005];
int n;
int pos[1000005];
int main(){
a[0]=inf;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
int mn=inf,f=0;
for(int i=1;i<=n;i++){
f=max(f,a[i]-mn);
mn=min(mn,a[i]);
}
mn=0;
int cnt=0,lmn=inf;
for(int i=1;i<=n;i++){
if(a[i]-a[mn]==f && a[mn]<lmn){
lmn=a[mn];
pos[++cnt]=mn;
}
if(a[i]<a[mn])mn=i;
}
pos[cnt+1]=n+1;
int ans=0;
for(int i=1;i<=cnt;i++){
int tot=0;
int dp[2]={0,0};
int L=a[pos[i]];
int R=L+f;
for(int j=pos[i];j<pos[i+1];j++){
if(a[j]==L || a[j]==R)tot++;
if(a[j]==L)dp[0]=max(dp[0],dp[1])+1;
if(a[j]==R)dp[1]++;
}
ans+=tot-max(dp[0],dp[1]);
}
printf("%d",ans);
return 0;
}
// quod erat demonstrandum
详细
小提示:点击横条可展开更详细的信息
Subtask #1:
score: 24
Accepted
Test #1:
score: 24
Accepted
time: 0ms
memory: 1196kb
input:
20 123333333 100000000 123333333 100000000 100000000 100000000 100000000 -46629627 -46629627 -466296...
output:
2
result:
ok single line: '2'
Subtask #2:
score: 16
Accepted
Test #2:
score: 16
Accepted
time: 0ms
memory: 1196kb
input:
100 100000000 123333333 123333333 123333333 123333333 123333333 123333333 100000000 123333333 100000...
output:
24
result:
ok single line: '24'
Subtask #3:
score: 21
Accepted
Test #3:
score: 21
Accepted
time: 0ms
memory: 1212kb
input:
5000 123333333 100000000 123333333 100000000 123333333 100000000 100000000 109260380 100000000 10778...
output:
1424
result:
ok single line: '1424'
Subtask #4:
score: 39
Accepted
Test #4:
score: 39
Accepted
time: 14ms
memory: 1588kb
input:
100000 107584386 100000000 117570850 100000000 100000000 100000000 123333333 113985760 100000000 100...
output:
32140
result:
ok single line: '32140'
Test #5:
score: 0
Accepted
time: 119ms
memory: 5104kb
input:
1000000 100000000 116429445 123333333 109196270 123333333 111215733 100000000 100000000 100000000 10...
output:
328969
result:
ok single line: '328969'
Extra Test:
score: 0
Extra Test Passed