AOJ 0286 - Computation of Salary

やるだけやなあと思ったら,範囲外参照.

解法

記録の数が50,000件以下なので,記録についてループを書けばいい.

コード

S,T,Eのサイズを50,000にすると,範囲外参照でWAが生えます.ナニソレイミワカンナイ.

#include <cstdio>
#include <cstring>

int main(){
    int N, M;
    scanf("%d %d", &N, &M);

    int S[50001], T[50001], E[50001], s_size;
    for(s_size=0;scanf("%d %d %d", S+s_size, T+s_size, E+s_size), S[s_size]||T[s_size]||E[s_size];s_size++){
        S[s_size]--; T[s_size]--;
    }
    
    int L;
    scanf("%d", &L);

    int B[10000], C[10000];
    while(L--){
        memset(C, 0, sizeof(C));
        
        for(int i=0;i<M;i++){
            scanf("%d", B+i);
        }

        for(int i=0;i<s_size;i++){
            C[S[i]] += B[T[i]] * E[i];
        }

        for(int i=0;i<N;i++){
            printf("%d%c", C[i], " \n"[i==N-1]);
        }
    }
}