#include <iostream>
#include <algorithm>
#include <vector>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main() {
// your code goes here
vector<int> s;
//s = {0,1,2,0,3,1,6,0};
s = {0, 0, 0, 0, 1,2,3,1,6};
s = {0, 0, 0, 0, 1,2,3,1,6};
int n = s.size();
int left = 0;
int right = n-1;
auto start = high_resolution_clock::now();
while(left<=right){
if(s[left]==0 && s[right]!=0){
swap(s[left],s[right]);
left++;
right--;
}
else if(s[left]!=0){
left++;
}
else if(s[right]==0){
right--;
}
}
auto stop = high_resolution_clock::now();
for(int i=0;i<n;i++){
cout<<s[i]<<" ";
}
auto duration = duration_cast<microseconds>(stop - start);
cout<<endl<<duration.count()<<" ms"<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y2hyb25vPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2Ugc3RkOjpjaHJvbm87CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3RvcjxpbnQ+IHM7CgkvL3MgPSB7MCwxLDIsMCwzLDEsNiwwfTsKCXMgPSB7MCwgMCwgMCwgMCwgMSwyLDMsMSw2fTsKCXMgPSB7MCwgMCwgMCwgMCwgMSwyLDMsMSw2fTsKCWludCBuID0gcy5zaXplKCk7CglpbnQgbGVmdCA9IDA7CglpbnQgcmlnaHQgPSBuLTE7CglhdXRvIHN0YXJ0ID0gaGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKCXdoaWxlKGxlZnQ8PXJpZ2h0KXsKCQlpZihzW2xlZnRdPT0wICYmIHNbcmlnaHRdIT0wKXsKCQkJc3dhcChzW2xlZnRdLHNbcmlnaHRdKTsKCQkJbGVmdCsrOwoJCQlyaWdodC0tOwoJCX0KCQllbHNlIGlmKHNbbGVmdF0hPTApewoJCQlsZWZ0Kys7CgkJfQoJCWVsc2UgaWYoc1tyaWdodF09PTApewoJCQlyaWdodC0tOwoJCX0KCX0KCWF1dG8gc3RvcCA9IGhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljb3V0PDxzW2ldPDwiICI7Cgl9CglhdXRvIGR1cmF0aW9uID0gZHVyYXRpb25fY2FzdDxtaWNyb3NlY29uZHM+KHN0b3AgLSBzdGFydCk7IAoJY291dDw8ZW5kbDw8ZHVyYXRpb24uY291bnQoKTw8IiBtcyI8PGVuZGw7CglyZXR1cm4gMDsKfQ==