Submission #1347337

#TimeUsernameProblemLanguageResultExecution timeMemory
1347337jahongirBubble Sort 2 (JOI18_bubblesort2)C++20
38 / 100
9091 ms1612 KiB
#include "bubblesort2.h"
#include <bits/stdc++.h>

using namespace std;

struct BIT{
	vector<int> vec;
	int n;

	BIT(int n):n(n),vec(n+1,0){;}

	void add(int i, int v){
		for(i++; i <= n; i+=i&-i)
			vec[i] += v;
	}

	int get(int i){
		int res = 0;
		for(i++; i > 0; i-=i&-i)
			res += vec[i];
		return res;
	}

	void clear(){
		fill(vec.begin(),vec.end(),0);
	}
};


vector<int> countScans(std::vector<int> A,std::vector<int> X,std::vector<int> V){
	int N = (int) A.size();
	int Q = (int) X.size();

	vector<int> res(Q,0);
	
	BIT bit(N);
	
	for(int t = 0; t < Q; t++){
		A[X[t]] = V[t];

		vector<pair<int,int>> vec(N);
		for(int i = 0; i < N; i++)
			vec[i] = {A[i],i};

		sort(vec.begin(),vec.end());
	
		for(int i = N-1; i >= 0; i--){
			res[t] = max(res[t],bit.get(vec[i].second));
			bit.add(vec[i].second,1);
		}

		bit.clear();
	}

	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...