結果

問題 No.2073 Concon Substrings (Swap Version)
ユーザー umimel
提出日時 2022-09-16 22:18:36
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,118 bytes
コンパイル時間 1,838 ms
コンパイル使用メモリ 171,148 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-12-21 21:29:59
合計ジャッジ時間 2,780 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 14 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
#define drep(i, cc, n) for (ll i = (cc); i <= (n); ++i)
#define rep(i, n) drep(i, 0, n - 1)
#define all(a) (a).begin(), (a).end()
#define pb push_back
#define fi first
#define se second

const ll MOD = 1000000007;
const ll MOD2 = 998244353;
const ll INF = 1LL << 60;
const ll MAX_N = 2e5;

int main(){
    ll n;
    cin >> n;

    string s;
    cin >> s;

    vector<vector<ll>> cnt(3, vector<ll>(3, 0));
    rep(i, 3*n){
        if(s[i]=='c') cnt[i%3][0]++;
        if(s[i]=='o') cnt[i%3][1]++;
        if(s[i]=='n') cnt[i%3][2]++;
    }

    ll ans = 0;
    ll rest = n;
    //con
    ans += min(cnt[0][0], min(cnt[1][1], cnt[2][2]));
    //onc
    ll x = min(cnt[0][1], min(cnt[1][2], cnt[2][0]));
    if(x+1 < rest){
        rest -= x+1;
        ans += x;
    }else{
        ans += rest-1;
        rest = 0;
    }
    //nco
    ll y = min(cnt[0][2], min(cnt[1][0], cnt[2][1]));
    if(y+1 < rest){
        rest-=y+1;
        ans += y;
    }else{
        ans += rest-1;
        rest = 0;
    }

    cout << ans << endl;
}
0