結果
| 問題 | 
                            No.265 数学のテスト
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2016-10-28 09:14:17 | 
| 言語 | C++11(廃止可能性あり)  (gcc 13.3.0)  | 
                    
| 結果 | 
                             
                                RE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 865 bytes | 
| コンパイル時間 | 533 ms | 
| コンパイル使用メモリ | 60,152 KB | 
| 実行使用メモリ | 6,824 KB | 
| 最終ジャッジ日時 | 2024-11-24 05:04:58 | 
| 合計ジャッジ時間 | 1,807 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 31 RE * 1 | 
ソースコード
#include <iostream>
#include <string>
#include <vector>
using namespace std;
typedef long long ll;
int main(){
  int N=0;cin>>N;
  int d=0;cin>>d;
  string S;cin>>S;
  int dd=0,xx=0,a=1,f=0,s=0,e=0;
  vector<ll> v(d+1);
  for(int i=0;i<S.size();++i){
    char c=S[i];
    if(c=='{'){
      s+=1;
      dd+=1;
    }
    if(c=='}'){
      e+=1;
      if(f==0) dd-=1;
    }
    if(c>='0' && c<='9'){
      a=c;
      a-=48;
      if(f==0) f=1;
    }
    if(c=='x'){
      xx+=1;
      if(f==0) f=1;
    }
    if(c=='+'){
      int b=a;
      for(int j=xx;j>=xx-(dd-1);--j){
        b*=j;
      }
      v[xx-dd]+=b;
      dd=s-e;
      a=1;
      xx=0;
      f=0;
    }
  }
  if(f==1){
    int b=a;
    for(int j=xx;j>=xx-(dd-1);--j){
    b*=j;
    }
    v[xx-dd]+=b;
  }
  for(int i=0;i<d+1;++i){
    if(i==0) cout<<v[i];
    else cout<<" "<<v[i];
  }
  cout<<endl;
}