QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#645991 | #6434. Paimon Sorting | 122 | AC ✓ | 693ms | 6260kb | C++14 | 1.2kb | 2024-10-16 20:48:10 | 2024-10-16 20:48:12 |
Judging History
answer
#include <bits/stdc++.h>
#define endl "\n"
#define int long long
#define PII std::pair<int, int>
#define PSS std::pair<string, string>
#define IOS ios::sync_with_stdio(false); cin.tie(0);
#define inf 0x3f3f3f3f
//#define lc p<<1
//#define rc p<<1|1
#define pi acos(-1)
#define PIS pair<int,string>
using namespace std;
int n;
int v[110000],s[110000],vis[110000];
void add(int x)
{
while(x<=n)
{
s[x]+=1;
// cout<<s[x]<<"********"<<x<<endl;
x+=(x&-x);
}
}
int sum(int x)
{
int res=0;
while(x)
{
res+=s[x];
x-=(x&-x);
}
return res;
}
void solve()
{
cin>>n;
memset(vis,0,sizeof(vis));
memset(s,0,sizeof(s));
memset(v,0,sizeof(v));
for(int i=1;i<=n;i++) cin>>v[i];
int ans=0;
cout<<ans;
add(v[1]);vis[v[1]]=1;
// cout<<s[1]<<endl;
int flag=0,cnt=0;
for(int i=2;i<=n;i++)
{
if(!vis[v[i]]) vis[v[i]]=1,add(v[i]);
if(v[i]==v[1]) flag=1;
if(flag==1&&v[i]<=v[1])cnt++;
// cout<<v[1]<<"****";
if(v[i]>v[1]) {
ans+=1+cnt,swap(v[i],v[1]);flag=0,cnt=0;}
// cout<<sum(v[1])<<" "<<sum(v[i]);
ans+=sum(v[1])-sum(v[i]);//第二大的数
cout<<" "<<ans;
}cout<<endl;
}
signed main() {
IOS; cout.tie(0);
int t=1;
cin>>t;
while(t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 6172kb
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: 0
Accepted
time: 693ms
memory: 6260kb
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 27 29 30 34 36 42 46 55 0 0 0 0 1 1 0 2 4 6 9 9 9 11 15 21 27 33 35 38 42 46 55 0 0 3 0 1 3 5 8 10 14 0 1 3 4 6 9 9 0 1 1 3 7 11 ...
result:
ok 6107 lines