大概是第四五次组队训练了。

四题。

第一次进铜牌线了= =(苦笑

A题,水题,队友看一会就敲了,1A。

 

J题,我看的,没看懂,叫队友和我一起看,三个人在没有讨论的情况下,全都理解错题意,凑不出样例,后来zr说,before和after应该是空间的,恍然大悟……

因为当RYB都>=2的时候有公式,我就直接分类讨论其他情况。写的……shi一样……wa了好几次,和zr一起找了半天,7A……

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
#define CLR(x, v) memset(x, v, sizeof x);
#define PI(x) printf("%lld\n", (ll)(x))
const int N = 100005;

void sort(ll &a, ll &b, ll &c) {
    ll x = min(a, min(b,c));
    ll y = max(a, max(b,c));
    ll z = (a+b+c)-x-y;
    a = x; b = z; c = y;
}

int main() {
    //freopen("in.txt", "r", stdin);
    ll a, b, c;
    while (~scanf("%lld%lld%lld", &a, &b, &c)) {
        sort(a, b, c);
        ll tot = a+b+c;
        if (a >= 2 && b >= 2 && c >= 2) {
            PI(15+(tot-6)*6);
        } else if (c == 0) {
            // zero color
            PI(0);
        } else if (b == 0) {
            // one color
            if(c == 1)
            PI(0);
            else
            PI((tot-2)*2+1);
        } else if (a == 0) {
            // two colors
            if (b == 1 && c == 1) PI(1);
            else if (b == 1 && c == 2) PI(3);
            else if (b == 1) PI(3+(c-2)*3);
            else PI(6+(tot-4)*4);
        } else {
            if (b == 1 && c == 1) PI(3);
            else if (b == 1) PI(6+(c-2)*4);
            else if (b >= 2) PI(10+(b+c-4)*5);
            else while (1);
        }
    }
    return 0;
}
View Code

相关文章: