제출 #500781

#제출 시각아이디문제언어결과실행 시간메모리
500781KhizriArranging Shoes (IOI19_shoes)C++17
50 / 100
16 ms1868 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define F first #define S second #define INF 1e18 #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define pii pair<int,int> #define pll pair<ll,ll> const int mxn=1e5+5; int color[mxn]; bool f(pii a,pii b){ return a.F+a.S<b.F+b.S; } int funk(vector<int>arr,vector<pii>vt){ int a=0,b=1,ans=0; sort(all(vt),f); for(int i=0;i<arr.size();i++){ ans+=abs(vt[arr[i]].F-a); for(int j=0;j<vt.size();j++){ if(i==j) continue; if(vt[j].F>=a&&vt[j].F<=vt[arr[i]].F){ vt[j].F++; } } for(int j=0;j<vt.size();j++){ if(vt[j].S>=a&&vt[j].S<=vt[arr[i]].F){ vt[j].S++; } } ans+=abs(vt[arr[i]].S-b); for(int j=0;j<vt.size();j++){ if(vt[j].F>=b&&vt[j].F<=vt[arr[i]].S){ vt[j].F++; } } for(int j=0;j<vt.size();j++){ if(i==j) continue; if(vt[j].S>=b&&vt[j].S<=vt[arr[i]].S){ vt[j].S++; } } a+=2,b+=2; } return ans; } long long count_swaps(vector<int> s) { long long n=s.size(); if(n/2>1000){ return n*(n-1)/2; } vector<pii>vt; for(int i=0;i<n;i++){ if(color[i]) continue; for(int j=i+1;j<n;j++){ if(!color[j]&&-s[i]==s[j]){ if(s[i]<0){ vt.pb({i,j}); } else{ vt.pb({j,i}); } color[i]=1; color[j]=1; break; } } } vector<int>v; for(int i=0;i<n/2;i++){ v.pb(i); } int ans=1e7; ans=min(ans,funk(v,vt)); return ans; }

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

shoes.cpp: In function 'int funk(std::vector<int>, std::vector<std::pair<int, int> >)':
shoes.cpp:21:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for(int i=0;i<arr.size();i++){
      |                 ~^~~~~~~~~~~
shoes.cpp:23:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |         for(int j=0;j<vt.size();j++){
      |                     ~^~~~~~~~~~
shoes.cpp:29:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         for(int j=0;j<vt.size();j++){
      |                     ~^~~~~~~~~~
shoes.cpp:35:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |         for(int j=0;j<vt.size();j++){
      |                     ~^~~~~~~~~~
shoes.cpp:40:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for(int j=0;j<vt.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...