2020 camp-day6-M

模拟题

 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 }
View Code

猜你喜欢

转载自www.cnblogs.com/2aptx4869/p/12216746.html