結果
| 問題 | 
                            No.115 遠足のおやつ
                             | 
                    
| コンテスト | |
| ユーザー | 
                             kyabaria
                         | 
                    
| 提出日時 | 2018-09-16 12:09:14 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 829 bytes | 
| コンパイル時間 | 1,616 ms | 
| コンパイル使用メモリ | 171,684 KB | 
| 実行使用メモリ | 10,752 KB | 
| 最終ジャッジ日時 | 2024-07-18 07:21:58 | 
| 合計ジャッジ時間 | 7,867 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | -- * 3 | 
| other | AC * 4 TLE * 1 -- * 35 | 
ソースコード
#include <bits/stdc++.h>
typedef  long long ll;
#define INF 1000000000
using namespace std;
#define MOD 1000000007
//vector<vector<int>>ans(1,vector<int>(10000));
//void test(string &a){
//    a.erase(a.size()-1);
vector<int>ans;
void dfs(int s,int n,int d,int k,vector<int>num){
    if(k==0 and d==0){
        if(ans.size()==0){
      for(int i=0;i<num.size();i++){
            ans.push_back(num[i]);
        }}
        return;
    }else if(d<0 or k<0 or s==n+1){
        return;
    }
    num.push_back(s);
    dfs(s+1,n,d-s,k-1,num);
    num.pop_back();
    dfs(s+1,n,d,k,num);
}
int main(void){
   int n,d,k;
   cin>>n>>d>>k;
   vector<int>num;
   dfs(1,n,d,k,num);
   if(ans.size()==0){
   cout<<-1<<endl;
   }else{
       for(int i=0;i<ans.size();i++){
           if(i!=0)cout<<" ";
           cout<<ans[i];
       }
   }
}
            
            
            
        
            
kyabaria