제출 #207197

#제출 시각아이디문제언어결과실행 시간메모리
207197Sho10Arranging Shoes (IOI19_shoes)C++14
컴파일 에러
0 ms0 KiB
/*
ID: Sho10
LANG: C++
*/
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
vector<int>v;
vector<int>l;
vector<int>r;
vector<int>a;
vector<int>an;
vector<int>S;
map<ll,ll>viz;
ll count_swaps(std::vector<int> S){
    v=S;
     ll ans=mod;
     ll verificare=0;
     for(ll i=0;i<v.size();i++)
     {
         viz[v[i]]++;
         if(viz[v[i]]==1){
            verificare++;
         }
     }
     if(verificare==1){
            for(ll i=0;i<v.size();i++)
            if(v[i]<0){
                l.pb(i);
            }else r.pb(i);
            ll s1=0,s2=0;
            ll x=0;
            for(ll i=0;i<l.size();i++)
            {
                s1=s1+abs(l[i]-x);
                x=x+2;
            }
            ans=s1;
     }else if(v.size()/2<=8){
    for(ll i=0;i<v.size();i++)
    if(v[i]<0){
        l.pb(v[i]);
    }
    sort(l.begin(),l.end());
    do{
        a=l;
        ll s=0;
        for(ll i=0;i<a.size();i++)
        if(a[i]<0){
            a.insert(a.begin()+i+1,abs(a[i]));
        }
        an=v;
        for(ll i=0;i<a.size();i++)
        {
            for(ll j=i;j<an.size();j++)
            if(an[j]==a[i]){
          for(ll c=j;c>i;c--)
          {
              swap(an[c],an[c-1]);
              s++;
          }
            break;
            }
        }
        ans=min(ans,s);

    }while (next_permutation(l.begin(),l.end()));
    }else {
        ll n=v.size()/2;
        ans=n*(n-1)/2;
    }
      return ans;
}
int32_t main(){
ll n,x;
cin>>n;
for(ll i=0;i<2*n;i++)
{
    cin>>x;
    S.pb(x);
}
cout<<count_swaps(S);
}



컴파일 시 표준 에러 (stderr) 메시지

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:35:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(ll i=0;i<v.size();i++)
                 ~^~~~~~~~~
shoes.cpp:43:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(ll i=0;i<v.size();i++)
                        ~^~~~~~~~~
shoes.cpp:49:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(ll i=0;i<l.size();i++)
                        ~^~~~~~~~~
shoes.cpp:47:21: warning: unused variable 's2' [-Wunused-variable]
             ll s1=0,s2=0;
                     ^~
shoes.cpp:56:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll i=0;i<v.size();i++)
                ~^~~~~~~~~
shoes.cpp:64:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(ll i=0;i<a.size();i++)
                    ~^~~~~~~~~
shoes.cpp:69:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(ll i=0;i<a.size();i++)
                    ~^~~~~~~~~
shoes.cpp:71:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(ll j=i;j<an.size();j++)
                        ~^~~~~~~~~~
/tmp/ccU3JcBt.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccB3wWVX.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status