結果

問題 No.265 数学のテスト
ユーザー nasadigitalnasadigital
提出日時 2015-08-07 23:39:45
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 1,476 bytes
コンパイル時間 457 ms
コンパイル使用メモリ 56,548 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-18 05:25:25
合計ジャッジ時間 1,288 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 5 ms
6,812 KB
testcase_01 AC 4 ms
6,944 KB
testcase_02 WA -
testcase_03 AC 2 ms
6,944 KB
testcase_04 AC 3 ms
6,944 KB
testcase_05 AC 2 ms
6,944 KB
testcase_06 AC 3 ms
6,940 KB
testcase_07 AC 3 ms
6,940 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,944 KB
testcase_12 AC 2 ms
6,940 KB
testcase_13 AC 1 ms
6,940 KB
testcase_14 AC 1 ms
6,944 KB
testcase_15 AC 1 ms
6,940 KB
testcase_16 AC 2 ms
6,940 KB
testcase_17 AC 1 ms
6,940 KB
testcase_18 AC 1 ms
6,940 KB
testcase_19 AC 2 ms
6,940 KB
testcase_20 AC 1 ms
6,940 KB
testcase_21 AC 1 ms
6,940 KB
testcase_22 AC 2 ms
6,940 KB
testcase_23 AC 2 ms
6,944 KB
testcase_24 AC 2 ms
6,944 KB
testcase_25 AC 1 ms
6,944 KB
testcase_26 AC 1 ms
6,940 KB
testcase_27 AC 1 ms
6,944 KB
testcase_28 AC 1 ms
6,940 KB
testcase_29 AC 2 ms
6,944 KB
testcase_30 AC 2 ms
6,940 KB
testcase_31 AC 2 ms
6,940 KB
testcase_32 AC 1 ms
6,944 KB
testcase_33 AC 2 ms
6,944 KB
testcase_34 AC 1 ms
6,940 KB
testcase_35 AC 1 ms
6,944 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#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<l;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);
    }
}
return rez;
}


int main()
{
    ctr=0;
    cin>>N>>D>>s;
    D++;
    shiki rez=parse();
    rez.p();
    return 0;
}
0