Submission #15741

# Submission time Handle Problem Language Result Execution time Memory
15741 2015-07-19T10:43:31 Z cki86201 버블 정렬 (OJUZ10_bubblesort) C++
0 / 100
97 ms 2772 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[110];
	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 2772 KB Output is correct
2 Correct 0 ms 2772 KB Output is correct
3 Incorrect 0 ms 2772 KB Output isn't correct
4 Correct 0 ms 2772 KB Output is correct
5 Correct 0 ms 2772 KB Output is correct
6 Incorrect 0 ms 2772 KB Output isn't correct
7 Incorrect 0 ms 2772 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 2772 KB Output isn't correct
2 Incorrect 0 ms 2772 KB Output isn't correct
3 Incorrect 1 ms 2772 KB Output isn't correct
4 Incorrect 0 ms 2772 KB Output isn't correct
5 Incorrect 0 ms 2772 KB Output isn't correct
6 Incorrect 0 ms 2772 KB Output isn't correct
7 Incorrect 0 ms 2772 KB Output isn't correct
8 Incorrect 0 ms 2772 KB Output isn't correct
9 Incorrect 0 ms 2772 KB Output isn't correct
10 Incorrect 0 ms 2772 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 90 ms 2772 KB Output isn't correct
2 Incorrect 79 ms 2772 KB Output isn't correct
3 Incorrect 78 ms 2772 KB Output isn't correct
4 Incorrect 28 ms 2772 KB Output isn't correct
5 Incorrect 54 ms 2772 KB Output isn't correct
6 Incorrect 84 ms 2772 KB Output isn't correct
7 Incorrect 83 ms 2772 KB Output isn't correct
8 Incorrect 62 ms 2772 KB Output isn't correct
9 Incorrect 80 ms 2772 KB Output isn't correct
10 Incorrect 82 ms 2772 KB Output isn't correct
11 Incorrect 67 ms 2772 KB Output isn't correct
12 Incorrect 76 ms 2772 KB Output isn't correct
13 Incorrect 94 ms 2772 KB Output isn't correct
14 Incorrect 75 ms 2772 KB Output isn't correct
15 Incorrect 73 ms 2772 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 78 ms 2772 KB Output isn't correct
2 Incorrect 70 ms 2772 KB Output isn't correct
3 Incorrect 86 ms 2772 KB Output isn't correct
4 Incorrect 92 ms 2772 KB Output isn't correct
5 Incorrect 80 ms 2772 KB Output isn't correct
6 Incorrect 52 ms 2772 KB Output isn't correct
7 Incorrect 63 ms 2772 KB Output isn't correct
8 Incorrect 79 ms 2772 KB Output isn't correct
9 Incorrect 33 ms 2772 KB Output isn't correct
10 Incorrect 97 ms 2772 KB Output isn't correct
11 Incorrect 85 ms 2772 KB Output isn't correct
12 Incorrect 88 ms 2772 KB Output isn't correct
13 Incorrect 85 ms 2772 KB Output isn't correct
14 Incorrect 67 ms 2772 KB Output isn't correct
15 Incorrect 81 ms 2772 KB Output isn't correct