ll n, d[MAXN], p[MAXN], r[MAXN]; ll type, f[2][8];
voidin(){ scanf("%lld", &n); for (int i = 1; i <= n; ++i) scanf("%lld%lld%lld", &d[i], &p[i], &r[i]); for (int i = 1; i <= n && type != 7; ++i) { if (d[i]) type |= 1; if (p[i]) type |= 2; if (r[i]) type |= 4; } return; } voiddp(){ for (int i = 0; i < 8; ++i) f[0][i] = f[1][i] = INF; f[0][0] = 0; for (int i = 1; i <= n; ++i) { ll cur = i % 2, pre = (i - 1) % 2, tot = d[i] + p[i] + r[i]; for (int j = 0; j < 8; ++j) { f[cur][j] = INF; if (j & 1) f[cur][j] = min(f[cur][j], min(f[pre][j], f[pre][j ^ 1]) + tot - d[i]); if (j & 2) f[cur][j] = min(f[cur][j], min(f[pre][j], f[pre][j ^ 2]) + tot - p[i]); if (j & 4) f[cur][j] = min(f[cur][j], min(f[pre][j], f[pre][j ^ 4]) + tot - r[i]); } } return; }