コード例 #1
0
int main() {
    //freopen("data.in", "r", stdin);

	int N, R, i, j, index, LB, UB;
	string name; char nameBuffer[11];
	vector<int> indexes;

    scanf("%d %d", &N, &R); getchar();
    for(i=0; i<N; i++)
    {
        Array ar;
        scanf("%s %d %d %d", nameBuffer, &ar.baseAddress, &ar.bytesPerElement, &ar.dimensions);
        for(j=0; j<ar.dimensions; j++)
        {
            scanf("%d %d", &LB, &UB);
            ar.bounds.push_back( make_pair(LB, UB) );
        }
        getchar();
        ar.CalculateConstValues();
        definitions[ string(nameBuffer) ] = ar;
    }

    for(i=0; i<R; i++)
    {
        indexes.clear();
        scanf("%s", nameBuffer);
        Array &ar = definitions[ string(nameBuffer) ];
        for(j=0; j<ar.dimensions; j++)
        {
            scanf("%d", &index);
            indexes.push_back(index);
        }

        int address=ar.c[0];
        for(j=1; j<=ar.dimensions; j++)
            address += ar.c[j] * indexes[j-1];

        printf("%s[%d", nameBuffer, indexes[0]);
        for(j=1; j<ar.dimensions; j++)
            printf(", %d", indexes[j]);
        printf("] = %d\n", address);
    }

    return 0;
}