結果
| 問題 |
No.265 数学のテスト
|
| コンテスト | |
| ユーザー |
h_noson
|
| 提出日時 | 2016-06-09 19:57:26 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,537 bytes |
| コンパイル時間 | 711 ms |
| コンパイル使用メモリ | 72,044 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-09 06:20:58 |
| 合計ジャッジ時間 | 2,023 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 31 WA * 1 |
ソースコード
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <stack>
using namespace std;
#define REP(i,s,e) for (i = s; i <= e; i++)
#define rep(i,n) REP (i,0,(int)(n)-1)
#define RREP(i,s,e) for (i = s; i >= e; i--)
#define rrep(i,n) RREP (i,(int)(n)-1,0)
#define INF (int)1e8
#define MOD (int)(1e9+7)
typedef long long ll;
int main(void) {
int n, d;
string s;
cin >> n >> d >> s;
vector<pair<int,int>> terms[20000];
pair<int,int> term = {0,0};
int depth = 0;
for (auto& c : s) {
if (c == 'x') {
if (term.first == 0)
term.first = 1;
term.second++;
}
else if ('1' <= c && c <= '9')
term.first = c - '0';
else if (c == '+') {
terms[depth].push_back(term);
term.first = 0; term.second = 0;
}
else if (c == 'd')
depth++;
else if (c == '}') {
terms[depth].push_back(term);
term.first = 0; term.second = 0;
for (auto&& t : terms[depth]) {
t.first *= t.second;
t.second--;
if (t.second >= 0)
terms[depth-1].push_back(t);
}
terms[depth].clear();
depth--;
}
}
if (s.back() != '}')
terms[0].push_back(term);
int i;
int ans[11] {};
for (auto&& t : terms[0])
ans[t.second] += t.first;
rep (i,d+1)
cout << ans[i] << " ";
cout << endl;
return 0;
}
h_noson