제출 #1347208

#제출 시각아이디문제언어결과실행 시간메모리
1347208jahongirBubble Sort 2 (JOI18_bubblesort2)C++20
0 / 100
4741 ms992 KiB
#include "bubblesort2.h"
#include <bits/stdc++.h>

using namespace std;


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

	void init(int _n){
		n = _n;
		vec.assign(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; bit.init(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--){
			bit.add(vec[i].second,1);
			vec[i].second -= bit.get(vec[i].second-1);
			res[t] += vec[i].second != i;
		}

		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...