Submission #283563

# Submission time Handle Problem Language Result Execution time Memory
283563 2020-08-26T01:39:17 Z test2 Arranging Shoes (IOI19_shoes) C++14
10 / 100
1 ms 384 KB
#include<bits/stdc++.h>
#include "shoes.h"

#define I inline void 
  
using namespace std ; 
 
using ll = long long ; 
using ld = long double ; 
 
const int N = 3000 + 7 , mod = 1e9 + 7 ;
 
// How interesting!
 
int n; 

int bit[N] ;

I add(int ix , int x){
	ix++ ; 
	for(;ix<N; ix+=ix&-ix){
		bit[ix] += x  ; 
	}
}

int upto(int ix){
	int ret = 0 ; 
	for(;ix;ix-=ix&-ix)
		ret+=bit[ix] ;
	return ret ; 
}

int get(int l , int r){
	return upto(r+1) - upto(l) ; 
}
 
long long count_swaps(std::vector<int> s) {
 
	int n = (int) s.size() ;
	ll ret = 0 ; 

	set<pair<int,int> > st ; 
	for(int i = 0 ;i < n;i ++){
		st.insert({s[i] , i}) ;
	}

	vector<int> viz(n+1 , 0) ; 
	for(int i = 0 ;i < n;i++){
		add(i , 1) ; 
	}

	for(int i = 0 ;i < n;i ++){	
		if(viz[i])
			continue ; 
		auto it = st.lower_bound({ - s[i] , -1}) ;
		int pos = (*it) .second ; 
		ret+= get(i + 1, pos - 1) ;
		if(s[i] > 0)ret++ ; 
		add(pos , -1) ; 
		viz[pos] = 1; 
	}

	return ret;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 0 ms 256 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 0 ms 256 KB Output is correct
12 Correct 0 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Incorrect 1 ms 256 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Incorrect 0 ms 256 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Incorrect 0 ms 256 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 0 ms 256 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 0 ms 256 KB Output is correct
12 Correct 0 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Incorrect 1 ms 256 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 0 ms 256 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 0 ms 256 KB Output is correct
12 Correct 0 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Incorrect 1 ms 256 KB Output isn't correct
15 Halted 0 ms 0 KB -