携程校招--携程海洋館のイルカの赤ちゃん(C++)

1850 ワード

⭐ 文章リンク:www.mengyingjie.com/archives/37/ ⭐
携程海洋館のイルカの赤ちゃん
タイトルの説明:
携程海洋館にはn匹の萌えイルカがいて、初期はいずれも0歳で、1匹のイルカの寿命はm歳で、
これらのイルカはbirthYear[i]のこれらの年に赤ちゃんイルカ(1<=birthYear[i]<=m)を生産し、赤ちゃんイルカは0歳に生まれたばかりだ.
問x年の時、携程海洋館には何匹のイルカがいましたか?
入力
n(初期イルカ数)
m(イルカ寿命)
イルカが赤ちゃんを産んだ年数(pと仮定)
イルカが赤ちゃんを産んだ年1
...
イルカが赤ちゃんを産んだ年p
x(数年後)
しゅつりょく
x年後、イルカは何匹いますか.
サンプル入力
552245
サンプル出力
20
コード#コード#
#include 
using namespace std;


int main()
{
    //n   ,    m,          p,x  
    int n, m, p, x;
    //n1       ,n2               ,        
    int n1,n2;
    //arr2            ,      -1,        
    int arr2[99999];
    cin >> n >> m >> p;
    n1 = n2 = n ;
    //arr1         
    int arr1[p];
    //        
    for(int i = 0; i < p; i++){
        cin >> arr1[i];
    }
    cin >> x;
    //                ,    1,      
    for(int i = 0; i < n; i++){
        arr2[i] = 1;
    }
    //      ,  x ,    x 
    for(int i = 1; i <= x; i++){
        //            
        for(int j = 0; j < n2; j++){
            //       -1,      
            if(arr2[j] == -1)continue;
            //              
            for(int k = 0; k < p; k++){
                //   
                if(arr2[j] == arr1[k]){
                    n1++;
                    n2++;
                    arr2[n2-1] = 0;
                }
            }
            //    ,  -1,       0,           -1.
            if(arr2[j] - 1 == m){
                n1--;
                arr2[j] = -1;
            }
            arr2[j]++;
        }
    }
    cout << n1 << endl;
    return 0 ;
}

このような問題に遭遇したが、文章を見ても解決しなかった.
コメントまたはQQ:781378815