제출 #1026390

#제출 시각아이디문제언어결과실행 시간메모리
1026390ezzzayArranging Shoes (IOI19_shoes)C++14
50 / 100
184 ms278248 KiB
#include<bits/stdc++.h> #include"shoes.h" using namespace std; #define ff first #define ss second #define pb push_back const int N=3e5+5; int bit[N]; int a[N]; vector<int>ans; int n; const int mxN=2e5; vector<int> tree(4*mxN); int cal(int node, int L, int R, int l, int r){ if(L>r||R<l) return 0; if(L>=l&&R<=r) return tree[node]; return cal(node*2,L,(L+R)/2,l,r)+cal(node*2+1,(L+R)/2+1,R,l,r); } void up(int node, int L, int R, int l, int r){ if(L>r||R<l) return; if(L==R){ tree[node]=1; return; } up(node*2,L,(L+R)/2,l,r); up(node*2+1,(L+R)/2+1,R,l,r); tree[node]=tree[node*2]+tree[node*2+1]; } int find(int idx){ int s=0; while(idx>0){ s+=bit[idx]; idx-= idx & -idx; } return s; } void update(int idx, int val){ while(idx<N){ bit[idx]+=val; idx+= idx & -idx; } } int fun(){ int s=0; for(int i=1;i<=n;i++){ s+=cal(1,1,n,a[i],n); up(1,1,n,a[i],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]; } return fun(); }

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:60:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |     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...