Submission #288925

# Submission time Handle Problem Language Result Execution time Memory
288925 2020-09-02T07:33:20 Z phillip Arranging Shoes (IOI19_shoes) C++14
10 / 100
7 ms 9728 KB
#include "shoes.h"
#include <bits/stdc++.h>
#define ll long long
#define fast cin.tie(0);cout.tie(0);
#define order ios::sync_with_stdio(0);ios_base::sync_with_stdio(0);
#define pb push_back
#define ln 2*x+1
#define rn 2*x+2
#define m (l+r)/2
using namespace std;
int n;
vector<int>v[200009][2];
int cass(int x)
{
    if(x>0)return 1;
    else return 0;
}
ll seg[1000009];
void bld(int x,int l,int r)
{
    if(l==r)
    {
        seg[x]=1;
        return;
    }
    bld(ln,l,m);
    bld(rn,m+1,r);
    seg[x]=seg[ln]+seg[rn];
}
void upd(int x,int l,int r,int w)
{
    if(l==r)
    {
        seg[x]=0;
        return;
    }
    if(m<=w)upd(ln,l,m,w);
    else upd(rn,m+1,r,w);
    seg[x]=seg[ln]+seg[rn];
}
ll qu(int x,int l,int r,int b,int e)
{
    if(b>e)return 0;
    if(b<=l&&r<=e)return seg[x];
    ll ret=0;
    if(m>=b)ret+=qu(ln,l,m,b,e);
    if(m<e)ret+=qu(rn,m+1,r,b,e);
    return ret;
}
int vis[200009];
long long count_swaps(vector<int> s)
{
    n=s.size()/2;
    int en=2*n-1;
    for(int i=n*2-1;i>=0;i--)
    {
        v[abs(s[i])][cass(s[i])].push_back(i);
    }
    bld(0,0,en);
    ll ans=0;
    for(int i=0;i<2*n;i++)
    {
        if(vis[i])continue;
        int x=s[i];
        if(x<0)x*=-1;
        else ans++;
        int v1=v[x][0].back(),v2=v[x][1].back();
        v[x][0].pop_back();
        v[x][1].pop_back();
        ans+=qu(0,0,en,min(v1,v2)+1,max(v1,v2)-1);
        upd(0,0,en,v1);upd(0,0,en,v2);
        vis[v1]=1;
        vis[v2]=1;
    }
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Correct 7 ms 9728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Correct 7 ms 9728 KB Output is correct
3 Correct 7 ms 9728 KB Output is correct
4 Correct 7 ms 9728 KB Output is correct
5 Correct 7 ms 9728 KB Output is correct
6 Correct 7 ms 9728 KB Output is correct
7 Incorrect 7 ms 9728 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Correct 7 ms 9728 KB Output is correct
3 Incorrect 7 ms 9728 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Incorrect 7 ms 9728 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Correct 7 ms 9728 KB Output is correct
3 Correct 7 ms 9728 KB Output is correct
4 Correct 7 ms 9728 KB Output is correct
5 Correct 7 ms 9728 KB Output is correct
6 Correct 7 ms 9728 KB Output is correct
7 Incorrect 7 ms 9728 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 9728 KB Output is correct
2 Correct 7 ms 9728 KB Output is correct
3 Correct 7 ms 9728 KB Output is correct
4 Correct 7 ms 9728 KB Output is correct
5 Correct 7 ms 9728 KB Output is correct
6 Correct 7 ms 9728 KB Output is correct
7 Incorrect 7 ms 9728 KB Output isn't correct
8 Halted 0 ms 0 KB -