AOJ 1179: ミレニアム / Millennium
y
とかm
とかd
が混乱してバグらせるので注意。すぐに修正できるとはいえ、私も友人もやらかした。
solution
やるだけ。$O(YM)$でひと月ずつ増やしていけばよい。
implementation
#include <cstdio>
int days_of_month(int y, int m) {
return y % 3 == 0 or m % 2 == 1 ? 20 : 19;
}
int main() {
int n; scanf("%d", &n);
while (n --) {
int y, m, d; scanf("%d%d%d", &y, &m, &d);
int result = 0;
result += days_of_month(y, m) - d;
++ m;
for (; y < 1000; ++ y) {
for (; m <= 10; ++ m) {
result += days_of_month(y, m);
}
m = 1;
}
result += 1;
printf("%d\n", result);
}
return 0;
}