팀별 총점, 제출횟수, 최종제출시간을 저장하고 sort한 후 우리 팀 ID를 찾으면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdio.h> #include <cstring> #include <vector> #include <algorithm> using namespace std; int tc, n, k, t, m, a, b, c; int d[101][101], tim[101], cnt[101]; int main() { scanf("%d", &tc); while (tc--) { memset(d, 0, sizeof(d)); memset(tim, 0, sizeof(tim)); memset(cnt, 0, sizeof(cnt)); scanf("%d%d%d%d", &n, &k, &t, &m); t--; for (int i = 0; i < m; i++) { scanf("%d%d%d", &a, &b, &c); a--; b--; d[a][b] = max(d[a][b], c); cnt[a]++; tim[a] = i; } vector < pair<int, pair<int, pair<int, int>>>> v; for (int i = 0; i < n; i++) { int sum = 0; for (int j = 0; j < k; j++) sum += d[i][j]; v.push_back({ sum,{-cnt[i],{-tim[i],i}} }); } sort(v.begin(), v.end()); for (int i = 0; i < n; i++) { if (v[i].second.second.second == t) printf("%d\n", n - i); } } return 0; } | cs |
'BOJ' 카테고리의 다른 글
3159 전구 (0) | 2017.10.30 |
---|---|
5619 세 번째 (0) | 2017.10.30 |
1898 이전 수열은 어떤 수열일까 (0) | 2017.10.30 |
13226 Divisors Again (0) | 2017.10.30 |
14891 톱니바퀴 (0) | 2017.10.26 |