제출 #1364595

#제출 시각아이디문제언어결과실행 시간메모리
1364595lizi14Arranging Shoes (IOI19_shoes)C++20
50 / 100
1095 ms2728 KiB
#include "shoes.h"
#include <cstdio>
#include <cassert>
#include <bits/stdc++.h>
using namespace std;

//#include "shoes.h"

long long count_swaps(vector<int> s) {
    long long n=s.size()/2;
    if(n==1){
        if(s[0]<0 && s[1]>0){
            return 0;
        }
        else return 1;
    }
    //long long cnt=0;
    // for(int i=0; i<2*n; i++){
        
    // }
    // for(int i=0; i<n; i++){
    //     if(!(abs(s[i])==s[i+n] && s[i]<0)){
    //         cnt=1;
    //         break;
    //     }
    // }
    // if(cnt==0){
    //     return (n*(n-1)/2);
    // }
    int c[2*n];
    fill(c,c+2*n,0);
    long long ans=0;
    for(int i=0; i<2*n; i++){
        if(c[i]==0){
            if(s[i]<0){
                //int ans1=-1;
                long long k=0;
                for(int j=i+1; j<2*n; j++){
                    if(c[j]==1)k++;
                    if(s[j]==abs(s[i]) && c[j]==0){
                        
                        ans+=j-i-1-k;
                        c[j]=1;
                        c[i]=1;
                        break;
                    }
                }
            }
            else{
                long long k=0;
                for(int j=i+1; j<2*n; j++){
                    if(c[j]==1)k++;
                    if(s[j]==(-1)*s[i] && c[j]==0){
                        //cout<<i<<" "<<j<<" "<<k<<endl;
                        ans+=j-i-k;
                        c[j]=1;
                        c[i]=1;
                        break;
                    }
                }
            }
        }
    }
    return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…