Submission #952754

# Submission time Handle Problem Language Result Execution time Memory
952754 2024-03-24T17:05:19 Z batsukh2006 Arranging Shoes (IOI19_shoes) C++17
25 / 100
237 ms 277372 KB
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<map>
#include<string>
#include<algorithm>
#include<vector>
#include<string.h>
#include<utility>
#include<set>
#include<cmath>
#include<queue>
#include<deque>
#include<functional>
#include<stack>
#include<limits.h>
#include<iomanip>
#include<unordered_map> 

#include "shoes.h"
 
using namespace std;
 
const int mxN=2e5;
vector<int> tree(4*mxN);
int cal(int node, int L, int R, int l, int r){
    if(L>r||R<l) return 0;
    if(L>=l&&R<=r) return tree[node];
    return cal(node*2,L,(L+R)/2,l,r)+cal(node*2+1,(L+R)/2+1,R,l,r);
}
void up(int node, int L, int R, int l, int r){
    if(L>r||R<l) return;
    if(L==R){
        tree[node]=1;
        return;
    }
    up(node*2,L,(L+R)/2,l,r);
    up(node*2+1,(L+R)/2+1,R,l,r);
    tree[node]=tree[node*2]+tree[node*2+1];
}
long long count_swaps(vector<int> s){
    vector<int> p(s.size());
    vector<stack<int> > v(s.size()+s.size()+1);
    for(int i=s.size()-1; i>=0; i--){
        v[s[i]+s.size()].push(i);
    }
    for(int i=0,j=0; i<s.size(); i++){
        if(!v[s[i]+s.size()].empty()){
            if(s[i]<0){
                p[j]=i;
                j++;
                p[j++]=v[-s[i]+s.size()].top();
                v[s[i]+s.size()].pop();
                v[-s[i]+s.size()].pop();
            }else{
                p[j++]=v[-s[i]+s.size()].top();
                p[j]=i;
                v[s[i]+s.size()].pop();
                v[-s[i]+s.size()].pop();
                j++;
            }
        }
    }
    long long ans=0;
    for(int i=0; i<p.size(); i++){
        ans+=cal(1,0,s.size(),p[i],s.size());
        up(1,0,s.size(),p[i],p[i]);
    }
    return ans;
}
// signed main(){
// 	// freopen("hps.in", "r", stdin);
// 	// freopen("hps.out", "w", stdout);
// 	ios::sync_with_stdio(0);
// 	cin.tie(0);
// 	cout.tie(0);
	
// 	int t=1;
// 	// cin>>t;
// 	while(t--){
// 		cout<<endl;
// 	}
// 	return 0;
// }

Compilation message

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:47:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for(int i=0,j=0; i<s.size(); i++){
      |                      ~^~~~~~~~~
shoes.cpp:65:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |     for(int i=0; i<p.size(); i++){
      |                  ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 2 ms 3420 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 2 ms 3420 KB Output is correct
3 Correct 1 ms 3416 KB Output is correct
4 Correct 1 ms 3420 KB Output is correct
5 Correct 1 ms 3420 KB Output is correct
6 Correct 1 ms 3420 KB Output is correct
7 Correct 1 ms 3420 KB Output is correct
8 Correct 1 ms 3420 KB Output is correct
9 Correct 1 ms 3420 KB Output is correct
10 Correct 1 ms 3420 KB Output is correct
11 Correct 1 ms 3380 KB Output is correct
12 Correct 1 ms 3420 KB Output is correct
13 Correct 1 ms 3420 KB Output is correct
14 Correct 2 ms 3420 KB Output is correct
15 Correct 1 ms 3420 KB Output is correct
16 Correct 1 ms 3672 KB Output is correct
17 Incorrect 1 ms 3420 KB Output isn't correct
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 2 ms 3420 KB Output is correct
3 Correct 2 ms 3420 KB Output is correct
4 Incorrect 2 ms 3420 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 1 ms 3420 KB Output is correct
3 Correct 1 ms 3420 KB Output is correct
4 Correct 1 ms 3420 KB Output is correct
5 Correct 237 ms 276428 KB Output is correct
6 Correct 185 ms 276320 KB Output is correct
7 Correct 202 ms 276288 KB Output is correct
8 Correct 184 ms 277372 KB Output is correct
9 Correct 231 ms 276312 KB Output is correct
10 Correct 189 ms 276436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 2 ms 3420 KB Output is correct
3 Correct 1 ms 3416 KB Output is correct
4 Correct 1 ms 3420 KB Output is correct
5 Correct 1 ms 3420 KB Output is correct
6 Correct 1 ms 3420 KB Output is correct
7 Correct 1 ms 3420 KB Output is correct
8 Correct 1 ms 3420 KB Output is correct
9 Correct 1 ms 3420 KB Output is correct
10 Correct 1 ms 3420 KB Output is correct
11 Correct 1 ms 3380 KB Output is correct
12 Correct 1 ms 3420 KB Output is correct
13 Correct 1 ms 3420 KB Output is correct
14 Correct 2 ms 3420 KB Output is correct
15 Correct 1 ms 3420 KB Output is correct
16 Correct 1 ms 3672 KB Output is correct
17 Incorrect 1 ms 3420 KB Output isn't correct
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3420 KB Output is correct
2 Correct 2 ms 3420 KB Output is correct
3 Correct 1 ms 3416 KB Output is correct
4 Correct 1 ms 3420 KB Output is correct
5 Correct 1 ms 3420 KB Output is correct
6 Correct 1 ms 3420 KB Output is correct
7 Correct 1 ms 3420 KB Output is correct
8 Correct 1 ms 3420 KB Output is correct
9 Correct 1 ms 3420 KB Output is correct
10 Correct 1 ms 3420 KB Output is correct
11 Correct 1 ms 3380 KB Output is correct
12 Correct 1 ms 3420 KB Output is correct
13 Correct 1 ms 3420 KB Output is correct
14 Correct 2 ms 3420 KB Output is correct
15 Correct 1 ms 3420 KB Output is correct
16 Correct 1 ms 3672 KB Output is correct
17 Incorrect 1 ms 3420 KB Output isn't correct
18 Halted 0 ms 0 KB -