結果

問題 No.3266 岩井星人は見ずにはいられない
ユーザー GOTKAKO
提出日時 2025-09-06 13:30:22
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 11 ms / 2,000 ms
コード長 961 bytes
コンパイル時間 1,880 ms
コンパイル使用メモリ 198,880 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-09-06 13:30:34
合計ジャッジ時間 3,077 ms
ジャッジサーバーID
(参考情報)
judge / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    long long N,A; cin >> N >> A;
    string s; cin >> s;

    vector<long long> one(N);
    for(int i=0; i<N; i++){
        if(s.at(i) == '1') one.at(i) = 1;
        if(i) one.at(i) += one.at(i-1);
    }
    int rate = 1200,solve = 0;
    int idx = 0;
    for(auto c : s){
        idx++;
        if(c == '0') rate--;
        else if(rate < 1200) rate++,solve++;
        if(solve == A){cout << idx << endl; return 0;}
    }
    int memo = rate,solve2 = 0;
    vector<long long> second;
    for(auto c : s){
        if(c == '0') rate--;
        else if(rate < 1200) rate++,solve2++;
        second.push_back(solve2);
    }
    long long answer = N; A -= solve;
    long long loop = (A-1)/solve2; A--; A %= solve2,A++;
    answer += N*loop;
    for(int i=0; i<N; i++) if(second.at(i) == A){answer += i+1; break;}
    cout << answer << "\n";
}
0