結果
問題 | No.1021 Children in Classrooms |
ユーザー |
|
提出日時 | 2020-05-30 09:48:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 1,942 bytes |
コンパイル時間 | 1,711 ms |
コンパイル使用メモリ | 169,428 KB |
実行使用メモリ | 6,656 KB |
最終ジャッジ日時 | 2024-11-07 04:30:54 |
合計ジャッジ時間 | 3,340 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#define TEMPLATE_USED #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vl; typedef vector<vl> vvl; typedef pair<ll,ll> pl; typedef vector<pl> vp; const ll INF=1001001001; const ll LINF=1001001001001001001; const ll D4[]={0,1,0,-1,0}; const ll D8[]={0,1,1,0,-1,-1,1,-1,0}; #define _overload3(_1,_2,_3,name,...) name #define _rep2(i,n) for(ll i=0;i<(n);++i) #define _rep3(i,a,b) for(ll i=(ll)(a);i<(ll)(b);++i) #define rep(...) _overload3(__VA_ARGS__,_rep3,_rep2)(__VA_ARGS__) #define _repe2(i,n) for(ll i=0;i<=(ll)(n);++i) #define _repe3(i,a,b) for(ll i=(ll)(a);i<=(ll)(b);++i) #define repe(...) _overload3(__VA_ARGS__,_repe3,_repe2)(__VA_ARGS__) #define _rrep2(i,n) for(ll i=(ll)(n)-1;i>=0;i--) #define _rrep3(i,a,b) for(ll i=(ll)(b)-1;i>=(ll)(a);i--) #define rrep(...) _overload3(__VA_ARGS__,_rrep3,_rrep2)(__VA_ARGS__) #define _rrepe2(i,n) for(ll i=(ll)(n);i>=0;i--) #define _rrepe3(i,a,b) for(ll i=(ll)(b);i>=(ll)(a);i--) #define rrepe(...) _overload3(__VA_ARGS__,_rrepe3,_rrepe2)(__VA_ARGS__) #define all(x) (x).begin(),(x).end() template<class T> bool chmax(T &a,const T &b){if(a<b){a=b;return 1;}return 0;} template<class T> bool chmin(T &a,const T &b){if(b<a){a=b;return 1;}return 0;} template<class T> using pq=priority_queue<T,vector<T>,greater<T>>; void solve(); int main(){ cin.tie(0); ios::sync_with_stdio(0); solve(); } void solve(){ /* (´~`) */ ll n,m;cin>>n>>m; vl a(n);rep(i,n)cin>>a[i]; string s;cin>>s; ll l=0,r=n-1,k=0; rep(i,m){ if(s[i]=='R'){ if(k<n-1)++k; if(k+r-l>=n)--r; }else{ if(k>0)--k; else if(l<n-1)++l; } } ll k_end=l>=r?k:k+r-l; vl ans(n); rep(i,n){ if(i<=l)ans[k]+=a[i]; else if(i>=r)ans[k_end]+=a[i]; else ans[k+i-l]+=a[i]; } rep(i,n){ if(i>0)cout<<' '; cout<<ans[i]; } cout<<endl; }