제출 #432258

#제출 시각아이디문제언어결과실행 시간메모리
432258AmylopectinArranging Shoes (IOI19_shoes)C++14
50 / 100
133 ms31704 KiB
#include <iostream> #include <stdio.h> #include <vector> #include "shoes.h" //#include "grader.cpp" using namespace std; const int mxn = 8e5 + 10; vector <int> li[mxn] = {}; int ta[mxn] = {},se[mxn] = {},u[mxn] = {},cou[mxn] = {}; int cre(int cl,int cr,int no) { if(cl == cr) { se[no] = 1; return 0; } int mid = (cl+cr) / 2; cre(cl,mid,no*2); cre(mid+1,cr,no*2+1); se[no] = se[no*2] + se[no*2+1]; return 0; } int del(int cl,int cr,int no,int tn) { if(cr < tn || cl > tn) { return 0; } if(cl == cr) { se[no] = 0; return 0; } int mid = (cl+cr) / 2; del(cl,mid,no*2,tn); del(mid+1,cr,no*2+1,tn); se[no] = se[no*2] + se[no*2+1]; return 0; } int fisu(int cl,int cr,int no,int tn) { if(cl > tn) { return 0; } if(cr <= tn) { return se[no]; } int mid = (cl+cr) / 2,su = 0; su += fisu(cl,mid,no*2,tn); su += fisu(mid+1,cr,no*2+1,tn); return su; } long long count_swaps(vector<int> s) { int i,j,n = s.size(),cpo,ans = 0; cre(0,n-1,1); for(i=0; i<n; i++) { if(s[i] > 0) { li[s[i]*2].push_back(i); } else { li[(-s[i] * 2) + 1].push_back(i); } } for(i=0; i<n; i++) { if(u[i] == 0) { if(s[i] > 0) { cpo = li[s[i]*2+1][cou[s[i]*2+1]]; cou[s[i]*2+1] ++; cou[s[i]*2] ++; ans += fisu(0,n-1,1,cpo-1); } else { cpo = li[(-(s[i]*2))][cou[-s[i]*2]]; cou[-s[i]*2] ++; cou[(-s[i]*2)+1] ++; ans += fisu(0,n-1,1,cpo-1)-1; } del(0,n-1,1,cpo); del(0,n-1,1,i); u[i] = 1; u[cpo] = 1; } } return ans; } //int main() //{ // // return 0; //}

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:57:11: warning: unused variable 'j' [-Wunused-variable]
   57 |     int i,j,n = s.size(),cpo,ans = 0;
      |           ^
#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...