update
This commit is contained in:
parent
9150dd04d9
commit
ba9d9526fd
8
day11/P3608/1.in
Normal file
8
day11/P3608/1.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
7
|
||||||
|
34
|
||||||
|
6
|
||||||
|
23
|
||||||
|
0
|
||||||
|
5
|
||||||
|
99
|
||||||
|
2
|
75
day11/P3608/P3608.cpp
Normal file
75
day11/P3608/P3608.cpp
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#include<bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
#define int long long
|
||||||
|
|
||||||
|
struct Cow{
|
||||||
|
int dir;
|
||||||
|
int h;
|
||||||
|
};
|
||||||
|
|
||||||
|
const int MAX_N = 1e5+5;
|
||||||
|
Cow cow[MAX_N];
|
||||||
|
int ans=0;
|
||||||
|
|
||||||
|
struct Tree{
|
||||||
|
int t[MAX_N];
|
||||||
|
int n;
|
||||||
|
// template<typename T>
|
||||||
|
// Tree(const &)=delete;
|
||||||
|
Tree(int n):n(n){}
|
||||||
|
int lowbit(int x){
|
||||||
|
return x&(-x);
|
||||||
|
}
|
||||||
|
void update(int dir,int delta){
|
||||||
|
while(dir<=n){
|
||||||
|
t[dir]+=delta;
|
||||||
|
dir+=lowbit(dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int query1to(int dir){
|
||||||
|
int sum=0;
|
||||||
|
while(dir>0){
|
||||||
|
sum+=t[dir];
|
||||||
|
dir-=lowbit(dir);
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int readint();
|
||||||
|
|
||||||
|
signed main(){
|
||||||
|
const int n =readint();
|
||||||
|
for(int i=1;i<=n;i++){
|
||||||
|
cow[i]={
|
||||||
|
.dir=i,
|
||||||
|
.h=readint(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
sort(cow+1,cow+n+1,[](Cow a,Cow b)->bool{
|
||||||
|
return a.h>b.h;
|
||||||
|
});
|
||||||
|
Tree cmax(n);
|
||||||
|
for(int i=1;i<=n;i++){
|
||||||
|
cmax.update(cow[i].dir, 1);
|
||||||
|
int l=cmax.query1to(cow[i].dir-1);
|
||||||
|
int r = i-l-1;
|
||||||
|
if(max(l,r)>min(l,r)*2)ans++;
|
||||||
|
}
|
||||||
|
cout<<ans<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int readint(){
|
||||||
|
int x=0,w=1;
|
||||||
|
char ch=0;
|
||||||
|
while(!isdigit(ch)){
|
||||||
|
if(ch=='-')w=-1;
|
||||||
|
ch=getchar();
|
||||||
|
}
|
||||||
|
while(isdigit(ch)){
|
||||||
|
x=x*10+(ch-'0');
|
||||||
|
ch=getchar();
|
||||||
|
}
|
||||||
|
return x*w;
|
||||||
|
}
|
100001
day11/P3608/P3608_2.in
Normal file
100001
day11/P3608/P3608_2.in
Normal file
File diff suppressed because it is too large
Load Diff
1
day11/P3608/P3608_2.out
Normal file
1
day11/P3608/P3608_2.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
66914
|
@ -119,5 +119,9 @@ target("P9127")
|
|||||||
add_files("./day9/P9127/*.cpp")
|
add_files("./day9/P9127/*.cpp")
|
||||||
|
|
||||||
target("P3374")
|
target("P3374")
|
||||||
set_rundir("./day11/P3374/P3374.cpp")
|
set_rundir("./day11/P3374")
|
||||||
add_files("./day11/P3374/*.cpp")
|
add_files("./day11/P3374/*.cpp")
|
||||||
|
|
||||||
|
target("P3608")
|
||||||
|
set_rundir("./day11/P3608")
|
||||||
|
add_files("./day11/P3608/*.cpp")
|
Loading…
Reference in New Issue
Block a user