結果
問題 |
No.78 クジ付きアイスバー
|
ユーザー |
![]() |
提出日時 | 2019-08-09 13:57:37 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,771 bytes |
コンパイル時間 | 1,402 ms |
コンパイル使用メモリ | 162,424 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-19 06:44:46 |
合計ジャッジ時間 | 2,141 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 WA * 12 |
コンパイルメッセージ
main.cpp: In function ‘void input(int&, R& ...) [with R = {int}]’: main.cpp:15:60: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 15 | template<typename... R> void input(int& f, R&... r) { scanf("%d", &f); input(r...); } | ~~~~~^~~~~~~~~~ main.cpp: In function ‘void input(int&, R& ...) [with R = {}]’: main.cpp:15:60: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
ソースコード
#pragma region include #include "bits/stdc++.h" #define ALL(obj) (obj).begin(),(obj).end() #define RALL(obj) (obj).rbegin(),(obj).rend() #define REP(i, n) for(int i = 0; i < (int)(n); i++) #define REPR(i, n) for(int i = (int)(n); i >= 0; i--) #define FOR(i,n,m) for(int i = (int)(n); i < int(m); i++) using namespace std; typedef long long ll; typedef pair<int, int> PII; const int MOD = 1e9 + 7; const int INF = 1e9 + 6; const ll LLINF = 4e18; void input() {} template<typename... R> void input(int& f, R&... r) { scanf("%d", &f); input(r...); } template<typename... R> void input(double& f, R&... r) { scanf("%lf", &f); input(r...); } template<typename... R> void input(ll& f, R&... r) { scanf("%lld", &f); input(r...); } template<typename... R> void input(char& f, R&... r) { scanf("%c", &f); input(r...); } template<typename T, typename... R> void input(vector<T>& f, R&... r) { REP(i, f.size())input(f[i]); input(r...); } #pragma endregion int main() { int n, k; input(n,k); string s; cin >> s; int a=0, b=0; int ans=0; vector<pair<int, int>> vec(n); REP(i, n) { if (s[i]=='0') { if (b > 0) { b--; } else { a++; } } else { if (b > 0) { b--; } else { a++; } b += s[i] - '0'; } vec[i] = pair<int,int>(a,b); if (k == i + 1) { ans = a; } } if (ans > 0) { cout << ans << endl; } else { if (b >= a) { cout << a << endl; } else { cout << a + (a - b)*max(0,k / n - 2)+vec[k%n].first-b << endl; } } getchar(); getchar(); }