酷代码 AI
菜单
服务商

深入解析洛谷打卡系统:规则揭秘与代码实现

```cpp #include <iostream> using namespace std; // 根据连续打卡天数获取对应的活跃值奖励 int getReward(int consecutiveDays) { if (consecutiveDays >= 365) return 6; if (consecutiveDays >= 120) return 5; if (consecutiveDays >= 30) return 4; if (consecutiveDays >= 7) return 3; if (consecutiveDays >= 3) return 2; if (consecutiveDays >= 1) return 1; return 0; } int main() { int N; cin >> N; int totalReward = 0; int consecutiveDays = 0; int missedDays = 0; for (int i = 0; i < N; i++) { int isChecked; cin >> isChecked; if (isChecked) { // 计算断签后剩余的连续打卡天数 consecutiveDays = max(0, consecutiveDays - (2 * missedDays - 1)); consecutiveDays++; totalReward += getReward(consecutiveDays); missedDays = 0; } else { missedDays++; } } cout << totalReward << endl; return 0; } ``` ######[AI问答 | 316点数解答 | 2025-11-16 19:45:59]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]