結果
問題 | No.1021 Children in Classrooms |
ユーザー |
![]() |
提出日時 | 2020-04-10 22:19:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 77 ms / 2,000 ms |
コード長 | 1,195 bytes |
コンパイル時間 | 1,631 ms |
コンパイル使用メモリ | 171,028 KB |
実行使用メモリ | 7,344 KB |
最終ジャッジ日時 | 2024-09-15 20:47:55 |
合計ジャッジ時間 | 3,673 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long #define rep(i, l, r) for (int i = (int)(l); i < (int)(r); i++) #define all(x) (x).begin(), (x).end() #define sz(x) ((int)x.size()) template <class T> bool chmax(T &a, T b) { if (a < b) { a = b; return 1; } return 0; } template <class T> bool chmin(T &a, T b) { if (a > b) { a = b; return 1; } return 0; } template <class T> using V = vector<T>; using P = pair<int, int>; /* */ signed main() { int n, m; cin >> n >> m; V<int> a(n); rep(i, 0, n) cin >> a[i]; string s; cin >> s; int sum = 0; rep(i, 0, m){ if(s[i] == 'L'){ sum = max(sum-1, -n+1); }else{ sum = min(sum+1, n-1); } if(sum < 0){ a[-sum] += a[-sum-1]; a[-sum-1] = 0; }else if(sum > 0){ a[n-1-sum] += a[n-sum]; a[n-sum] = 0; } } V<int> ans; rep(i, 0, sum) ans.emplace_back(0); rep(i, max(0LL, -sum), min(n, n-sum)){ ans.emplace_back(a[i]); } rep(i, 0, -sum) ans.emplace_back(0); rep(i, 0, n){ cout << ans[i] << " \n"[i==n-1]; } // rep(i, 0, n){ // cout << a[i] << " \n"[i==n-1]; // } // cout << sum << endl; return 0; }