제출 #1026394

#제출 시각아이디문제언어결과실행 시간메모리
1026394ezzzayArranging Shoes (IOI19_shoes)C++14
100 / 100
188 ms285264 KiB
#include "shoes.h" #include<bits/stdc++.h> using namespace std; #define ff first #define ll long long #define ss second #define pb push_back const int N=3e5+5; ll bit[N]; ll a[N]; vector<ll>v[N]; vector<ll>ans; int n; ll find(int idx){ ll s=0; while(idx>0){ s+=bit[idx]; idx-= idx & -idx; } return s; } void update(int idx, ll val){ while(idx<N){ bit[idx]+=val; idx+= idx & -idx; } } ll fun(){ ll s=0; for(int i=1;i<=n;i++){ update(a[i],1); s+=i-find(a[i]); } return s; } long long count_swaps(vector<int> s) { vector<int> p(s.size()); vector<stack<int> > v(s.size()+s.size()+1); for(int i=s.size()-1; i>=0; i--){ v[s[i]+s.size()].push(i); } for(int i=0,j=0; i<s.size(); i++){ if(!v[s[i]+s.size()].empty()&&v[s[i]+s.size()].top()==i){ if(s[i]<0){ p[j]=i; j++; p[j++]=v[-s[i]+s.size()].top(); v[s[i]+s.size()].pop(); v[-s[i]+s.size()].pop(); }else{ p[j++]=v[-s[i]+s.size()].top(); p[j]=i; v[s[i]+s.size()].pop(); v[-s[i]+s.size()].pop(); j++; } } } n=s.size(); for(int i=0;i<n;i++){ a[i+1]=p[i]+1; } return fun(); }

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:46:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(int i=0,j=0; i<s.size(); i++){
      |                      ~^~~~~~~~~
#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...