結果
問題 | No.2541 Divide 01 String |
ユーザー |
|
提出日時 | 2024-01-20 04:13:24 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 9 ms / 2,000 ms |
コード長 | 2,087 bytes |
コンパイル時間 | 2,971 ms |
コンパイル使用メモリ | 248,708 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-28 05:24:29 |
合計ジャッジ時間 | 4,327 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
#ifndef INCLUDED_main#define INCLUDED_main#include __FILE__const ll mod = 998244353; using mint = atcoder::modint998244353;//const ll mod = 1000000007; using mint = atcoder::modint1000000007;int main(){int n; cin >> n;string s; cin >> s;vector<int> a;rep(i, 0, n){if(s[i] == '1'){a.emplace_back(i);}}int as = a.size();if(as == 0){cout << 0 << endl;return 0;}if(as == 1){cout << 1 << endl;return 0;}mint ans = 1;rep(i, 0, as-1){ans *= a[i+1]-a[i]+1;}cout << ans.val() << endl;}#else#include <bits/stdc++.h>#include <atcoder/modint>using ll = long long;using ld = long double;using Graph = std::vector<std::vector<int>>;#define endl '\n'#define INF 1000000039#define LLINF 393939393939393939#define fore(i, a) for(auto &i : a)#define rep(i, a, b) for(int i = a; i < b; i++)#define erep(i, a, b) for(int i = a; i <= b; i++)#define rrep(i, a, b) for(int i = a; i >= b; i--)#define all(x) x.begin(), x.end()#define rall(x) x.rbegin(), x.rend()#define part(x, a, b) x.begin()+a, x.begin()+b+1#define rpart(x, a, b) x.rbegin()+a, x.rbegin()+b+1#define pcnt(x) __builtin_popcount(x)#define llpcnt(x) __builtin_popcountll(x)template<typename T>using pq = std::priority_queue<T>;template<typename T>using pqg = std::priority_queue<T, std::vector<T>, std::greater<T>>;template<typename T>bool chmax(T &a, const T &b){if(a < b){ a = b; return 1; }else return 0;}template<typename T>bool chmin(T &a, const T &b){if(a > b){ a = b; return 1; }else return 0;}// 多次元配列の生成template<size_t Dimention, typename T>class Mvector : public std::vector<Mvector<Dimention-1, T>>{public:template<typename N, typename... Sizes>Mvector(T init, N n, Sizes... sizes) : std::vector<Mvector<Dimention-1, T> >(n, Mvector<Dimention-1, T>(init, sizes...)){ }};template<typename T>class Mvector<1, T> : public std::vector<T>{public:template<typename N>Mvector(T init, N n) : std::vector<T>(n, init){ }};using namespace std;#endif