⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1443.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1443 on 2005-09-14 at 01:13:53 */ 
#include <stdio.h>

typedef struct {
    int row;
    int col;
} Matrix;    

long matrixMuti(Matrix, Matrix, Matrix*);

int main()
{
    char ch;
    Matrix m[26], mutiMatrix, stack[200];
    int n, i, top, error;
    long sum, j;
    
    scanf("%d", &n);
    for(i = 0; i < n; i++) {
        getchar();
        ch = getchar() - 'A';
        scanf(" %d %d", &m[ch].row, &m[ch].col);
    }
    while(getchar() != '\n')
        ;
	while(1) {
	    sum = 0;
	    error = 0;
	    top = 0;
		while(1) {
			ch = getchar();
			if(ch == EOF) {
				return 0;
			} else if(ch == '(') {
				continue;
			} else if(ch == ')') {
				j = matrixMuti(stack[top-2], stack[top-1], &mutiMatrix);
				top -= 2;
				if(j == -1) {
					error = 1;
					while(getchar() != '\n')
					   ;
					break;
				} else {
					sum += j;
					stack[top].row = mutiMatrix.row;
					stack[top].col = mutiMatrix.col;
					top++;
				}
			} else if(ch != '\n') {
				stack[top].row = m[ch-'A'].row;
				stack[top].col = m[ch-'A'].col;
				top++;
			} else {
				break;
			}    
		}
		if(error == 1) {
		    printf("error\n");
		} else {
		    printf("%ld\n", sum);
        }        
	}
    
    return 0;
}

long matrixMuti(Matrix m1, Matrix m2, Matrix *result)
{
    long time;
    
    if(m1.col != m2.row) {
        return -1;
    } else {
        time = m1.row * m1.col * m2.col;
        result->row = m1.row;
        result->col = m2.col;
        return time;
    }    
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -