#include<iostream> #include<cstring> usingnamespace std; constint N = 5e5 + 7; int v[N],a[N]; intmain() { int n ; cin >> n; int idx = 1; for (int i = 1; i <= n; i ++ ){ cin >> a[i]; if (a[i] < 0) v[-a[i]]++; if (a[i] > 0 && v[a[i]]){ while (v[a[i]]){ cout << i - idx << ' '; if (a[idx] < 0) v[-a[idx]]--; idx ++; } } } for (int i = idx; i <= n ; i ++) cout << n + 1 -i <<' '; }
#include<iostream> #include<algorithm> #include<map> #include<set> #include<cstring> #include<cmath> usingnamespace std; typedeflonglong ll; ll n,m; constint N = 1e7 + 7; voidswapp(ll x,ll y){ ll t = x; x = y; y = t; } bool v[N];int L[1000],R[1000],MID[1000]; intmain(){ string s1,s2; getline(cin,s1); getline(cin,s2); int l = 0, r = 0 ,mid= 0; for ( int i = 0; s1[i]; i ++) { if (s1[i] == '#' && s2[i] == '.') L[l++] = i; elseif (s1[i] == '.' && s2[i] == '#') R[r++] = i; elseif (s1[i] == '#' && s2[i] == '#') MID[mid++] = i; } n = s1.size(); //cout << l << mid << r << endl; if (mid > 0 || l == 0 || r == 0 ) { puts("YES"); for (int i = 0 ; i < l ; i++) cout << s1[L[i]] ; for (int i = 0 ; i < mid; i ++) cout << s1[MID[i]]; for ( int i = 0 ; i < r; i ++) cout << s1[R[i]]; for (int i = l + mid + r; i < n ;i ++) cout <<'.'; puts(""); for (int i = 0 ; i < l ; i++) cout << s2[L[i]] ; for (int i = 0 ; i < mid; i ++) cout << s2[MID[i]]; for ( int i = 0 ; i < r; i ++) cout << s2[R[i]]; for (int i = l + mid + r; i < n ;i ++) cout << '.'; puts(""); }elseputs("NO"); return0;