제출 #1035603

#제출 시각아이디문제언어결과실행 시간메모리
1035603AbitoArranging Shoes (IOI19_shoes)C++17
50 / 100
1097 ms6092 KiB
#include "shoes.h"
#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define elif else if
#define F first
#define S second
using namespace std;
const int N=3e5+5;
int a[N],n;
char b[N];
bool vis[N];
int count_swaps(vector<int32_t> v){
    n=v.size();
    for (int i=1;i<=n;i++){
        a[i]=v[i-1];
        if (a[i]<0) b[i]='L';
        else b[i]='R';
    }
    vector<pair<int,int>> c;
    for (int i=1;i<=n;i++){
        if (vis[i] || a[i]>0) continue;
        for (int j=1;j<=n;j++){
            if (vis[j] || a[j]!=-a[i]) continue;
            vis[i]=vis[j]=1;
            c.pb({i,j});
            break;
        }
    }
    int ans=0;
    for (auto u:c) ans+=u.F+u.S-bool(u.F<u.S);
    //cout<<ans<<e
    ans-=n/2*(n/2+1);
    //cout<<ans<<endl;
    for (int i=0;i<c.size();i++){
        int l1=min(c[i].F,c[i].S),r1=max(c[i].F,c[i].S);
        for (int j=i+1;j<c.size();j++){
            int l2=min(c[j].F,c[j].S),r2=max(c[j].F,c[j].S);
            int l3=max(l1,l2),r3=min(r1,r2);
            //cout<<l1<<' '<<r1<<' '<<l2<<' '<<r2<<' '<<l3<<' '<<r3<<endl;
            if (l3>r3) ans-=2;
            elif (l3==l1 && r3==r1);
            elif (l3==l2 && r3==r2);
            else ans--;
        }
    }return ans;
}

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:35:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for (int i=0;i<c.size();i++){
      |                  ~^~~~~~~~~
shoes.cpp:37:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         for (int j=i+1;j<c.size();j++){
      |                        ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...