Submission #15742

# Submission time Handle Problem Language Result Execution time Memory
15742 2015-07-19T10:43:52 Z cki86201 버블 정렬 (OJUZ10_bubblesort) C++
47 / 100
118 ms 3164 KB
#include<stdio.h>
#include<algorithm>
#include<set>
#include<vector>
using namespace std;

typedef long long ll;
typedef pair<int,int> Pi;
#define X first
#define Y second

int p[100010], n, k, q[100010], per[100010], s[100010];

struct BIT{
	int r[100010];
	void update(int x){for(int i=x+1;i<=n;i+=(i&-i))r[i]++;}
	int read(int x){
		int ret = 0;
		for(int i=x+1;i;i-=(i&-i))ret += r[i];
		return ret;
	}
	void clear(){for(int i=1;i<=n;i++)r[i] = 0;}
}bit;

bool comp(const int &a, const int &b){return p[a] < p[b];}

int main(){
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++)scanf("%d",p+i);
	for(int i=0;i<n;i++)per[i] = i;
	sort(per, per+n, comp);
	vector <int> v;
	for(int i=0;i<n;i++){
		if(i > 0 && p[per[i]] != p[per[i-1]]){
			for(int j=0;j<(int)v.size();j++)bit.update(v[j]);
			v.clear();
		}
		s[i] = max(per[i] - bit.read(per[i]) - k, 0);
		v.push_back(per[i]);
	}
	bit.clear();
	for(int i=0;i<n;i++){
		int low=0, high=n-1, cor=0;
		while(low<=high){
			int mid = (low+high) / 2;
			if(s[i] <= mid - bit.read(mid))cor = mid, high = mid - 1;
			else low = mid + 1;
		}
		q[cor] = p[per[i]];
		bit.update(cor);
	}
	for(int i=0;i<n;i++)printf("%d ",q[i]);
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3164 KB Output is correct
2 Correct 0 ms 3164 KB Output is correct
3 Incorrect 0 ms 3164 KB Output isn't correct
4 Incorrect 0 ms 3164 KB Output isn't correct
5 Correct 0 ms 3164 KB Output is correct
6 Correct 0 ms 3164 KB Output is correct
7 Incorrect 0 ms 3164 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3164 KB Output is correct
2 Correct 0 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 0 ms 3164 KB Output is correct
5 Correct 1 ms 3164 KB Output is correct
6 Incorrect 0 ms 3164 KB Output isn't correct
7 Incorrect 1 ms 3164 KB Output isn't correct
8 Incorrect 1 ms 3164 KB Output isn't correct
9 Incorrect 0 ms 3164 KB Output isn't correct
10 Incorrect 0 ms 3164 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 82 ms 3164 KB Output is correct
2 Correct 100 ms 3164 KB Output is correct
3 Correct 99 ms 3164 KB Output is correct
4 Correct 89 ms 3164 KB Output is correct
5 Correct 52 ms 3164 KB Output is correct
6 Correct 102 ms 3164 KB Output is correct
7 Correct 73 ms 3164 KB Output is correct
8 Correct 85 ms 3164 KB Output is correct
9 Correct 83 ms 3164 KB Output is correct
10 Correct 77 ms 3164 KB Output is correct
11 Correct 107 ms 3164 KB Output is correct
12 Correct 75 ms 3164 KB Output is correct
13 Correct 37 ms 3164 KB Output is correct
14 Correct 99 ms 3164 KB Output is correct
15 Correct 99 ms 3164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 104 ms 3164 KB Output is correct
2 Incorrect 118 ms 3164 KB Output isn't correct
3 Incorrect 86 ms 3164 KB Output isn't correct
4 Incorrect 80 ms 3164 KB Output isn't correct
5 Incorrect 107 ms 3164 KB Output isn't correct
6 Incorrect 55 ms 3164 KB Output isn't correct
7 Incorrect 33 ms 3164 KB Output isn't correct
8 Incorrect 77 ms 3164 KB Output isn't correct
9 Incorrect 95 ms 3164 KB Output isn't correct
10 Incorrect 99 ms 3164 KB Output isn't correct
11 Incorrect 96 ms 3164 KB Output isn't correct
12 Incorrect 111 ms 3164 KB Output isn't correct
13 Incorrect 67 ms 3164 KB Output isn't correct
14 Incorrect 91 ms 3164 KB Output isn't correct
15 Incorrect 113 ms 3164 KB Output isn't correct