# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
599219 | Summers | Arranging Shoes (IOI19_shoes) | C++14 | 89 ms | 34664 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "shoes.h"
#include<iostream>
#include<vector>
using namespace std;
vector<long long>v[1000000];
long long fen[1000000];
void update(long long pos,long long val)
{
for(int i=pos;i<=1000000;i+=(i&-i))
{
fen[i]+=val;
}
}
long long sum(long long val)
{
long long ss=0;
for(int i=val;i>0;i-=(i&-i))
{
ss+=fen[i];
}
return ss;
}
bool is[1000000];
long long count_swaps(std::vector<int> s) {
long long i,j,n,res=0;
n=s.size()/2;
for(i=s.size()-1;i>=0;i--)
{
v[s[i]+n].push_back(i);
update(i+1,1);
}
for(i=0;i<s.size();i++)
{
if(is[i])continue;
is[i]=1;
v[s[i]+n].pop_back();
long long pos=v[-s[i]+n][v[-s[i]+n].size()-1];
v[-s[i]+n].pop_back();
is[pos]=1;
res+=sum(pos)-sum(i+1);
update(pos+1,-1);
if(s[i]>0)res++;
}
return res;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |