結果
問題 | No.1943 消えたAGCT(1) |
ユーザー |
|
提出日時 | 2022-05-20 22:02:44 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,362 bytes |
コンパイル時間 | 3,667 ms |
コンパイル使用メモリ | 251,220 KB |
最終ジャッジ日時 | 2025-01-29 10:39:07 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 WA * 11 |
ソースコード
#include <bits/stdc++.h>#include <atcoder/all>using namespace std;//#define DISABLE_PRINT#if defined(ENABLE_PRINT) && !defined(DISABLE_PRINT)#define P(...) fprintf(stderr, __VA_ARGS__)#define P2(fmt) fprintf(stderr, fmt)#define LP fprintf(stderr, "L: %d\n", __LINE__)#else#define P(...) ((void)0)#define P2(fmt) ((void)0)#define LP ((void)0)#endif#define rep(i, n) for(int i = 0; i < (int)(n); ++i)#define ALL(x) x.begin(),x.end()using ll = long long;using ull = unsigned long long;int main(int, const char**){int N; cin >> N;string S; cin >> S;vector<int> nexts(N + 1);rep(i, N) nexts[i] = i + 1;auto check = [&](int i) {assert(i < N);if(S[i] == 'A' || S[i] == 'G' || S[i] == 'C' || S[i] == 'T') return true;return false;};auto c = 0;rep(i, N) {if(check(i)) c++;}int ans = 0;auto count = c;P("count: %d\n", count);while(c > 0) {auto ti = c - 1;auto prev = ti - 1;while(ti < N) {P("c: %d, ti: %d\n", c, ti);ans++;if(check(ti)) {c--;if(prev >= 0) {nexts[prev] = ti + 1;}break;}ti = nexts[ti];}}cout << ans << endl;return 0;}