蒟蒻CF19A求助,WA了第5个点
查看原帖
蒟蒻CF19A求助,WA了第5个点
307211
ChickyHas楼主2022/1/20 08:36
#include <bits/stdc++.h>

using namespace std;

const int N = 55;

struct C {
  string na;
  int sc, jq, sq;
} a[N];

unordered_map<string, int> p;
int n, nu1, nu2;
string na1, na2, s;

bool cmp(C a, C b) {
  if (a.sc != b.sc) {
    return a.sc > b.sc;
  } else if (a.jq - a.sq != b.jq - b.sq) {
    return a.jq - a.sq > b.jq - b.sq;
  } else {
    return a.jq > b.jq;
  }
}

bool cmp2(C a, C b) {
  return a.na < b.na;
}

int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> a[i].na;
    p[a[i].na] = i;
  }
  for (int i = 1; i <= n * (n - 1) / 2; ++i) {
    cin >> s;
    for (int j = 0; j < s.size(); ++j) {
      if (s[j] == '-') {
        na1 = s.substr(0, j);
        na2 = s.substr(j + 1, s.size() - j - 1);
        break;
      }
    }
    cin >> s;
    nu1 = nu2 = 0;
    bool f = 0;
    for (int j = 0; j < s.size(); ++j) {
      if (s[j] == ':') {
        f = 1;
      } else if (f) {
        nu2 = nu2 * 2 + s[j] - '0';
      } else {
        nu1 = nu1 * 2 + s[j] - '0';
      }
    }
    a[p[na1]].jq += nu1;
    a[p[na1]].sq += nu2;
    a[p[na2]].jq += nu2;
    a[p[na2]].sq += nu1;
    if (nu1 > nu2) {
      a[p[na1]].sc += 3;
    } else if (nu2 > nu1) {
      a[p[na2]].sc += 3;
    } else {
      a[p[na1]].sc += 1;
      a[p[na2]].sc += 1;
    }
  }
  sort(a + 1, a + n + 1, cmp);
  sort(a + 1, a + n / 2 + 1, cmp2);
  for (int i = 1; i <= n / 2; ++i) {
    cout << a[i].na << '\n';
  }
  return 0;
}
2022/1/20 08:36
加载中...