关于我这代码样例对但WA,为什么(玄关)
查看原帖
关于我这代码样例对但WA,为什么(玄关)
785193
Iochi_YC楼主2024/10/26 22:11
#include <bits/stdc++.h>
using namespace std;
int A, B, C, D, a[64], b[64], c[64], d[64], timed;

int main() {
	cin >> A >> B >> C >> D;
	for (int i = 1; i <= A; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= B; i++) {
		cin >> b[i];
	}
	for (int i = 1; i <= C; i++) {
		cin >> c[i];
	}
	for (int i = 1; i <= D; i++) {
		cin >> d[i];
	}
	if (a[1] < 2) {
		for (int i = 1; i <= A; i++) {
			timed += a[i];
		}
	} else if (A == 2) {
		if (a[1] < a[2] || a[1] == a[2]) {
			timed += a[2];
		} else {
			timed += a[1];
		}

	} else if (A == 3) {
		int minl[4] = {}, nm = 999;
		if (a[1] + a[2] >= a[3]) {
			minl[1] += a[1] + a[2];
		}
		if (a[1] + a[3] >= a[2]) {
			minl[2] += a[1] + a[3];
		}
		if (a[2] + a[3] >= a[1]) {
			minl[3] += a[2] + a[3];
		}
		for (int i = 1; i <= 3; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	} else if (A == 4) {
		int minl[10] = {}, nm = 999;
		if (a[1] + a[2] >= a[3] + a[4]) {
			minl[1] += a[1] + a[2];
		}
		if (a[2] + a[3] >= a[1] + a[4]) {
			minl[2] += a[3] + a[2];
		}
		if (a[3] + a[4] >= a[1] + a[2]) {
			minl[3] += a[3] + a[4];
		}
		if (a[1] + a[4] >= a[3] + a[2]) {
			minl[4] += a[1] + a[4];
		}
		if (a[1] + a[3] >= a[2] + a[4]) {
			minl[5] += a[1] + a[3];
		}
		if (a[4] + a[2] >= a[3] + a[1]) {
			minl[6] += a[4] + a[2];
		}
		for (int i = 1; i <= 6; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	}
///////////AAAAAAAAAAAAAA///////////////////////AAAAAAAAAAAA////////////////////////////////////AAAAAAA
	if (b[1] < 2) {
		for (int i = 1; i <= B; i++) {
			timed += b[i];
		}
	} else if (B == 2) {
		if (b[1] < b[2] || b[1] == b[2]) {
			timed += b[2];
		} else {
			timed += b[1];
		}

	} else if (B == 3) {
		int minl[4] = {}, nm = 999;
		if (b[1] + b[2] >= b[3]) {
			minl[1] += b[1] + b[2];
		}
		if (b[1] + b[3] >= b[2]) {
			minl[2] += b[1] + b[3];
		}
		if (b[2] + b[3] >= b[1]) {
			minl[3] += b[2] + b[3];
		}
		for (int i = 1; i <= 3; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	} else if (B == 4) {
		int minl[10] = {}, nm = 999;
		if (b[1] + b[2] >= b[3] + b[4]) {
			minl[1] += b[1] + b[2];
		}
		if (b[2] + b[3] >= b[1] + b[4]) {
			minl[2] += b[3] + b[2];
		}
		if (b[3] + b[4] >= b[1] + b[2]) {
			minl[3] += b[3] + b[4];
		}
		if (b[1] + b[4] >= b[3] + b[2]) {
			minl[4] += b[1] + b[4];
		}
		if (b[1] + b[3] >= b[2] + b[4]) {
			minl[5] += b[1] + b[3];
		}
		if (b[4] + b[2] >= b[3] + b[1]) {
			minl[6] += b[4] + b[2];
		}
		for (int i = 1; i <= 6; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	}
//////////////BBBBBBBBBBB/////////////////////BBBBBBBBBBBBBBBBBBBBBBBBBBBBB////////////BBBBBB
	if (c[1] < 2) {
		for (int i = 1; i <= C; i++) {
			timed += c[i];
		}
	} else if (C == 2) {
		if (c[1] < c[2] || c[1] == c[2]) {
			timed += c[2];
		} else {
			timed += c[1];
		}

	} else if (C == 3) {
		int minl[4] = {}, nm = 999;
		if (c[1] + c[2] >= c[3]) {
			minl[1] += c[1] + c[2];
		}
		if (c[1] + c[3] >= c[2]) {
			minl[2] += c[1] + c[3];
		}
		if (c[2] + c[3] >= c[1]) {
			minl[3] += c[2] + c[3];
		}
		for (int i = 1; i <= 3; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	} else if (C == 4) {
		int minl[10] = {}, nm = 999;
		if (c[1] + c[2] >= c[3] + c[4]) {
			minl[1] += c[1] + c[2];
		}
		if (c[2] + c[3] >= c[1] + c[4]) {
			minl[2] += c[3] + c[2];
		}
		if (c[3] + c[4] >= c[1] + c[2]) {
			minl[3] += c[3] + c[4];
		}
		if (c[1] + c[4] >= c[3] + c[2]) {
			minl[4] += c[1] + c[4];
		}
		if (c[1] + c[3] >= c[2] + c[4]) {
			minl[5] += c[1] + c[3];
		}
		if (c[4] + c[2] >= c[3] + c[1]) {
			minl[6] += c[4] + c[2];
		}
		for (int i = 1; i <= 6; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	}
/////////////////CCCCCCCCCCCCCCCCCCCCC////////////////////////////CCCCCCCCCCCCCCCCCCCCCCCCCCC////////////
	if (d[1] < 2) {
		for (int i = 1; i <= D; i++) {
			timed += d[i];
		}
	} else if (D == 2) {
		if (d[1] < d[2] || d[1] == d[2]) {
			timed += d[2];
		} else {
			timed += d[1];
		}

	} else if (D == 3) {
		int minl[4] = {}, nm = 999;
		if (d[1] + d[2] >= d[3]) {
			minl[1] += d[1] + d[2];
		}
		if (d[1] + d[3] >= d[2]) {
			minl[2] += d[1] + d[3];
		}
		if (d[2] + d[3] >= d[1]) {
			minl[3] += d[2] + d[3];
		}
		for (int i = 1; i <= 3; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	} else if (D == 4) {
		int minl[10] = {}, nm = 999;
		if (d[1] + d[2] >= d[3] + d[4]) {
			minl[1] += d[1] + d[2];
		}
		if (d[2] + d[3] >= d[1] + d[4]) {
			minl[2] += d[3] + d[2];
		}
		if (d[3] + d[4] >= d[1] + d[2]) {
			minl[3] += d[3] + d[4];
		}
		if (d[1] + d[4] >= d[3] + d[2]) {
			minl[4] += d[1] + d[4];
		}
		if (d[1] + d[3] >= d[2] + d[4]) {
			minl[5] += d[1] + d[3];
		}
		if (d[4] + d[2] >= d[3] + d[1]) {
			minl[6] += d[4] + d[2];
		}
		for (int i = 1; i <= 6; i++) {
			if (minl[i] < nm)
				nm = minl[i];
			timed += nm;
		}
	}
	cout << timed;
	return 0;
}

2024/10/26 22:11
加载中...