Submission #332356

# Submission time Handle Problem Language Result Execution time Memory
332356 2020-12-02T06:09:49 Z YJU Bubble Sort 2 (JOI18_bubblesort2) C++14
0 / 100
143 ms 189932 KB
#include<bits/stdc++.h>
#pragma GCC optimize("unroll-loops,no-stack-protector")
using namespace std;
typedef int ll;
typedef long double ld;
typedef pair<ll,ll> pll;
const ll MOD=1e9+7;
const ll MOD2=998244353;
const ll N=1e6+5;
const ll K=350;
const ld pi=acos(-1);
const ll INF=(1LL<<30);
#define SQ(i) ((i)*(i))
#define REP(i,n) for(ll i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define pb push_back
#define mp make_pair
#define setp setprecision
#define lwb lower_bound
#define SZ(_a) (ll)_a.size()

ll tag[4*N],ma[4*N];
set<ll> cnt[4*N];
vector<ll> lis;

void push(ll id){
	if(tag[id]){
		tag[id*2]+=tag[id];
		ma[id*2]+=tag[id];
		tag[id*2+1]+=tag[id];
		ma[id*2+1]+=tag[id];
		tag[id]=0;
	}
}

void add(ll id,ll l,ll r,ll ql,ll qr,ll val){
	if(l>=ql&&r<=qr){tag[id]+=val;ma[id]+=val;return;}
	if(l>=qr||r<=ql)return ;
	ll mid=(l+r)/2;
	push(id);
	add(id*2,l,mid,ql,qr,val);
	add(id*2+1,mid,r,ql,qr,val);
	ma[id]=max(ma[id*2],ma[id*2+1]);
}

void upd(ll to,ll val,ll ty){
	ll D=(SZ(cnt[to])?*prev(cnt[to].end()):0);
	if(ty==0)cnt[to].erase(val);
	else cnt[to].insert(val);
	D=(SZ(cnt[to])?*prev(cnt[to].end()):0)-D;
	add(1,1,SZ(lis)+1,to,to+1,D);
	add(1,1,SZ(lis)+1,to,SZ(lis)+1,(ty?-1:1));
}

vector<ll> countScans(vector<ll> A,vector<ll> X,vector<ll> V){
	vector<ll> ans;
	REP(i,SZ(A))lis.pb(A[i]);
	REP(i,SZ(V))lis.pb(V[i]);
	sort(lis.begin(),lis.end());
	lis.resize(unique(lis.begin(),lis.end())-lis.begin());
	REP(i,SZ(A))A[i]=lwb(lis.begin(),lis.end(),A[i])-lis.begin()+1;
	REP(i,SZ(V))V[i]=lwb(lis.begin(),lis.end(),V[i])-lis.begin()+1;
	
	REP(i,SZ(A))upd(A[i],i,1);
	REP(i,SZ(X)){
		upd(A[X[i]],X[i],0);
		upd(A[X[i]]=V[i],X[i],1);
		ans.pb(ma[1]);
	}
	return ans;
}

/*
int main(){
	vector<ll> A,X,V;
	ll n,q,x;
	cin>>n>>q;
	REP(i,n)cin>>x,A.pb(x);
	REP(i,q)cin>>x,X.pb(x),cin>>x,V.pb(x);
	vector<ll> ans=countScans(A,X,V);
	for(ll i:ans)cout<<i<<"\n";
}
//*/
# Verdict Execution time Memory Grader output
1 Incorrect 118 ms 188268 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 118 ms 188268 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 143 ms 189932 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 118 ms 188268 KB Output isn't correct
2 Halted 0 ms 0 KB -