QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#185817 | #6434. Paimon Sorting | TJSW | TL | 1ms | 3440kb | C++14 | 2.3kb | 2023-09-22 17:15:45 | 2023-09-22 17:15:45 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define mod 998244353
#define ffor(n) for(int i = 0;i < n;++i)
const int N = 2000006;
using namespace std;
void build_log();
int mv_x[4] = {1,0,-1,0};
int mv_y[4] = {0,1,0,-1};
int year[2][15] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//1æ¯é°å¹´,0æ¯éé°å¹´
int t;
int m_log2[500005]; // log2(x) + 1
int k;
int n,m;
int h;
vector<int>st;
int Find(int pos)
{
int l = 0;
int r = st.size()-1;
while(l < r)
{
int mid = l + r >> 1;
if(st[mid] > pos)
{
l = mid + 1;
}
else
{
r = mid;
}
}
return l;
}
signed main()
{
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
cin>>t;
while(t--)
{
cin>>n;
st.clear();
int sum = 0;
int a;
ffor(n)
{
cin>>a;
if(i == 0)
{
st.push_back(a);
}
else
{
if(st.front() < a)
{
st.push_back(a);
sort(st.begin(),st.end(),greater<int>());
sum += 2;
}
else
{
if(a < st.back())
{
sum += st.size();
st.push_back(a);
}
else
{
int y = Find(a);
sum += y;
if(st[y] != a)
{
st.push_back(a);
}
sort(st.begin(),st.end(),greater<int>());
}
}
}
if(i != n-1)
{
cout<<sum<<' ';
}
else
{
cout<<sum;
}
}
cout<<endl;
}
return 0;
}
void build_log()
{
for(int i = 1;i <= n;i++)
{
m_log2[i] = m_log2[i-1] + ((1 << m_log2[i-1]) == i);
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3440kb
input:
3 5 2 3 2 1 5 3 1 2 3 1 1
output:
0 2 3 5 7 0 2 4 0
result:
ok 3 lines
Test #2:
score: -100
Time Limit Exceeded
input:
6107 19 10 13 8 8 11 18 12 9 15 19 6 13 11 11 17 9 14 2 18 12 1 8 10 2 10 2 6 1 5 9 5 7 16 14 4 2 15 12 14 10 3 2 9 15 4 12 9 5 15 10 3 2 5 6 7 8 6 1 6 4 18 6 5 12 12 11 2 10 10 5 10 13 15 13 10 17 7 11 2 1 1 2 1 1 3 2 1 2 17 11 15 3 10 7 15 15 10 5 17 3 3 14 13 11 11 2 3 2 2 3 7 6 1 7 5 3 5 1 7 2 1...
output:
0 2 4 6 7 9 11 16 17 19 28 31 36 41 43 51 55 67 68 0 2 4 6 6 8 10 14 17 18 22 25 0 1 3 5 7 8 11 16 22 26 26 31 33 37 42 42 0 1 3 5 7 9 11 17 19 23 0 1 3 3 4 8 10 12 16 18 20 22 23 27 29 35 39 48 0 0 0 0 1 1 0 2 4 6 9 9 9 11 15 17 23 29 31 34 38 42 51 0 0 2 0 1 3 5 8 10 14 0 1 3 4 6 9 9 0 1 1 3 5 9 1...