제출 #798063

#제출 시각아이디문제언어결과실행 시간메모리
798063MularstyleArranging Shoes (IOI19_shoes)C++14
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;

#include "shoes.h"
#define ll long long
int n;
ll ar[200005];
bool vis[200005];
void up(int idx,int x)
{
    while(idx<=n)ar[idx]+=x,idx+=(idx&-idx);
}

int re(int idx)
{
    ll sum=0;
    while(idx>0)sum+=ar[idx],idx-=(idx&-idx);
    return sum;
}

long long count_swaps(std::vector<int> os) {

    ll ans=0;
    n=os.size();
    int s[n+5];

    for(int i=1;i<=n;i++)
        s[i]=os[i-1];

    vector<int> S[n];
    int pidx[n+5];

    for(int i=1;i<=n;i++)
    {
        up(i,1);
        S[abs(s[i])].push_back(i);
    }

    for(int i=1;i<=n;i++)
    {
        if(S[i].empty())continue;
        for(int a=0;a<S[i].size()la++)
        {
            if(s[S[i][a]]>=0)continue;
            for(int b=0;b<S[i].size();b++)
            {
                if(s[S[i][b]]<=0)continue;
                pidx[S[i][a]]=S[i][b];
                pidx[S[i][b]]=S[i][a];
                S[i][a]=0;
                S[i][b]=0;
                break;
            }
        }
    }


    for(int i=1;i<=n;i++)
    {

    if(vis[pidx[i]])continue;
     vis[i]=1;

      // ans+=re(pidx[i]);
        ans+=( ( re(pidx[i])-re(i-1) )  -2  );

       if(s[i]>0)//rightonleft
           ans++;

        up(i,-1);
        up(pidx[i],-1);

    }

    return ans;

}

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:42:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |         for(int a=0;a<S[i].size()la++)
      |                     ~^~~~~~~~~~~~
shoes.cpp:42:34: error: expected ';' before 'la'
   42 |         for(int a=0;a<S[i].size()la++)
      |                                  ^~
      |                                  ;
shoes.cpp:42:34: error: 'la' was not declared in this scope; did you mean 'a'?
   42 |         for(int a=0;a<S[i].size()la++)
      |                                  ^~
      |                                  a
shoes.cpp:45:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |             for(int b=0;b<S[i].size();b++)
      |                         ~^~~~~~~~~~~~