結果
| 問題 |
No.265 数学のテスト
|
| コンテスト | |
| ユーザー |
nasadigital
|
| 提出日時 | 2015-08-07 23:27:46 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,462 bytes |
| コンパイル時間 | 402 ms |
| コンパイル使用メモリ | 57,452 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-18 05:24:17 |
| 合計ジャッジ時間 | 1,297 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 31 WA * 1 |
ソースコード
#include <iostream>
using namespace std;
int N,D;
string s;
int ctr;
/*
*/
class shiki{
public:
int n;
int * cs;
shiki(int n){
this->n=n;
cs=new int[n];
for(int ctr1=0;ctr1<n;ctr1++)
cs[ctr1]=0;
}
void raise(int s,int c){
cs[s]+=c;
}
void add(shiki b){
for(int ctr1=0;ctr1<n;ctr1++)
cs[ctr1]+=b.cs[ctr1];
}
void free(){
delete [] cs;
}
void p(){
for(int ctr1=0;ctr1<n;ctr1++){
cout<<cs[ctr1]<<" ";
}
cout<<endl;
}
void dx(){
int * cs2=new int[n];
for(int ctr1=0;ctr1<n-1;ctr1++){
cs2[ctr1]=cs[ctr1+1]*(ctr1+1);
}
cs2[n-1]=0;
delete [] cs;
cs=cs2;
}
};
shiki parse(){
shiki rez(D);
while(1)
if(ctr==N)
return rez;
else if(s[ctr]=='d'){
ctr+=2;
shiki k=parse();
k.dx();
rez.add(k);
k.free();
}else if(s[ctr]=='}'){
ctr++;
return rez;
}else if (s[ctr]=='+'){
ctr++;
}else{
int step=0,kons=1;
int l=N;
for(int ctr1=ctr;ctr1<N;ctr1++)
if(s[ctr1]!='x' && s[ctr1]!='*' && !isdigit(s[ctr1])){
l=ctr1;break;}
for(int ctr1=ctr;ctr1<l;ctr1++){
if(isdigit(s[ctr1]))
kons=s[ctr1]-'0';
if(s[ctr1]=='x')
step++;
}
ctr=l;
rez.raise(step,kons);
}
}
int main()
{
ctr=0;
cin>>N>>D>>s;
D++;
shiki rez=parse();
rez.p();
return 0;
}
nasadigital