結果
問題 | No.2482 Sandglasses |
ユーザー |
![]() |
提出日時 | 2023-09-29 19:08:40 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 359 ms / 2,000 ms |
コード長 | 982 bytes |
コンパイル時間 | 5,500 ms |
コンパイル使用メモリ | 320,168 KB |
実行使用メモリ | 20,736 KB |
最終ジャッジ日時 | 2024-11-16 22:58:37 |
合計ジャッジ時間 | 17,466 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
#include <bits/stdc++.h>#include <atcoder/all>#define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++)using namespace std;using namespace atcoder;typedef long long ll;ll f(ll n, ll x, ll t, char c) {t %= n * 2;if (t >= n) {c ^= 'A';c ^= 'B';x = n - x;t -= n;}if (c == 'B') {if (x + t <= n) {return x + t;} else {ll mi = x + t - n;return n - mi;}} else {return abs(x - t);}}int main() {ll n, k, t;cin >> n >> k >> t;vector<char> a(n);vector<ll> b(n);rep(i, 0, n) cin >> a[i];rep(i, 0, n) cin >> b[i];vector<ll> bsort = b;sort(bsort.begin(), bsort.end());vector<ll> anssort(n);rep(i, 0, n) { anssort[i] = f(k, b[i], t, a[i]); }sort(anssort.begin(), anssort.end());map<ll, ll> mp;rep(i, 0, n) mp[bsort[i]] = anssort[i];rep(i, 0, n) cout << mp[b[i]] << ' ';}