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")
 | 
			
		||||
 | 
			
		||||
target("P3374")
 | 
			
		||||
    set_rundir("./day11/P3374/P3374.cpp")
 | 
			
		||||
    add_files("./day11/P3374/*.cpp")
 | 
			
		||||
    set_rundir("./day11/P3374")
 | 
			
		||||
    add_files("./day11/P3374/*.cpp")
 | 
			
		||||
 | 
			
		||||
target("P3608")
 | 
			
		||||
    set_rundir("./day11/P3608")
 | 
			
		||||
    add_files("./day11/P3608/*.cpp")
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user