求问 最后一点始终过不了,read :, expected 1.
查看原帖
求问 最后一点始终过不了,read :, expected 1.
324545
xiaolangwhite楼主2023/2/1 16:38

最后一点始终过不了,read :, expected 1. 求问

测评记录 源代码:

#include <iostream>
#include <cstdio>
#include <string>
const int MAXN = 25;
int val[MAXN];
int ew[MAXN];
int n;
int MAP[MAXN][MAXN];
int path[MAXN];
int main(){
	scanf("%d",&n);
	for(int i = 1;i <= n;i++){
		scanf("%d",&val[i]);
	}
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n-i;j++){
			scanf("%d",&MAP[i][j+i]);//i -> i+j(j)
		}
	}
	int MAX = 0;
	int last_num = 0;
	for(int i = 1;i <= n;i++){
		ew[i] = val[i];
	}
	int last = 0;
	for(int i = 1;i <= n;i++){// see i start
		for(int j = 1;j <= n;j++){
			if(MAP[j][i]){
				if(ew[i]<ew[i]-last_num+ew[j]){
					ew[i] = ew[i]-last_num+ew[j];
					last_num = ew[j];
					path[i] = j;
				}
			}
		}
		if(ew[i] > MAX){
			last = i;
			MAX = ew[i];
		}
		last_num = 0;
	}
	int i = 0;
	char a[MAXN];
	for(void();path[last]!=0;last = path[last]){
		a[i++] = char(last + '0');
		//printf("%d ",last);
	}
	//printf("%d",last);
	a[i] = char(last + '0');
	for(void();i >= 0;i--){
		printf("%c ",a[i]);
	}
	printf("\n%d",MAX);
	return 0;
} 
2023/2/1 16:38
加载中...