模拟题
1 #include <cstdio> 2 #include <vector> 3 #include <algorithm> 4 5 #define RE register 6 #define FOR(i,a,b) for(RE int i=a;i<=b;++i) 7 #define ROF(i,a,b) for(RE int i=a;i>=b;--i) 8 #define P pair<int,int> 9 #define sc(n) scanf("%d",&n) 10 11 using namespace std; 12 13 const int maxn = 110; 14 15 int person[102][12], test[12], wa[102][12], maxwa[102][12]; 16 int n, m, w, a, b, c; 17 long long ans[102]; 18 19 int main() 20 { 21 sc(n); sc(m); sc(w); 22 FOR(i, 1, w) 23 { 24 sc(a), sc(b), sc(c); 25 if(!person[a][0])person[a][0] = 1; 26 if (c) 27 { 28 if (!person[a][b])++person[a][0],person[a][b] = 1, ++test[b]; 29 wa[a][b] = 0; 30 } 31 else ++wa[a][b], maxwa[a][b] = max(maxwa[a][b], wa[a][b]); 32 } 33 FOR(i, 1, n) 34 { 35 if (!person[i][0]) { puts("998244353"); continue; } 36 if (person[i][0] == 1) { puts("1000000"); continue; } 37 if (person[i][0] == m + 1) { puts("0"); continue; } 38 else 39 FOR(j, 1, m) 40 { 41 if (test[j] && !person[i][j]) 42 if (test[j] >= n / 2)ans[i] += 30; 43 else ans[i] += 20; 44 if (!person[i][j])ans[i] += 2ll * maxwa[i][j] * maxwa[i][j]; 45 else ans[i] += 1ll * maxwa[i][j] * maxwa[i][j]; 46 } 47 printf("%lld\n", ans[i]); 48 } 49 return 0; 50 }