Submission #217545

#TimeUsernameProblemLanguageResultExecution timeMemory
2175452fat2codeArranging Shoes (IOI19_shoes)C++17
10 / 100
156 ms147324 KiB
#include "shoes.h" #include <bits/stdc++.h> #define ll long long #define ld long double #define all(a) (a).begin(), (a).end() #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define sz() size() #define fr first #define sc second #define pi pair<int,int> #define pii pair<pair<int,int>,int> #define mp make_pair //#define int long long #define rc(s) return cout<<s,0 #define rcc(s) cout<<s,exit(0) using namespace std; const int mod=1e9+7; const int modp=1999999973; const int modulo=998244353; int ans,aib[100005],n; vector<int>arr(100005); vector<int>neimperecheat[100005]; queue<int>q[100005]; void update(int pos,int val){ while(pos<=n){ aib[pos]+=val; pos+=(pos&-pos); } } int sum(int pos){ int rs=0; while(pos>=1){ rs+=aib[pos]; pos-=(pos&-pos); } return rs; } long long count_swaps(std::vector<int> s) { ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); srand(chrono::steady_clock::now().time_since_epoch().count()); n=s.size(); int cnt=-1; for(int i=0;i<s.size();i++){ if(s[i]<0){ cnt+=2; arr[i+1]=cnt; q[-s[i]].push(cnt+1); } } for(int i=0;i<s.size();i++){ if(s[i]>0){ arr[i+1]=q[s[i]].front(); q[s[i]].pop(); } } for(int i=n;i>=1;i--){ ans+=sum(arr[i]); update(arr[i],1); } return ans; }

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:50:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<s.size();i++){
                 ~^~~~~~~~~
shoes.cpp:57:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=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...