题目
在牛客网,签到的人是有奖励的!!!
对于星期一签到的人会获得 的奖励
对于星期二签到的人会获得 的奖励
······
对于星期天签到的人会获得 的奖励
牛牛签到的这一个月是第 年的第
个月
牛牛忘记了这个月的 1 日是星期几
但是他知道自己签过到的日期
他想知道自己最少可以获得多少奖励
解题思路
对于每月的第 日和第
日,如果
,则这两日的星期是相同的。
暴力枚举:假设这月的第 1 日是星期一/二/.../六/日,分别计算每月奖励总和,返回最小值。
C++代码
#include<iostream>
#include<vector>
using namespace std;
int main(){
int a, b;
int h[7];
int c;
cin >> a >> b;
for(int i=0; i<7; ++i)
cin >> h[i];
int k = 0;
vector<int> week(7,0);
while(cin >> c){
if(c==1) week[k]+=1;
++k;
k%=7;
}
int ans = 0x3f3f3f3f;
for(int i=0; i<7; ++i){
int j = i;
int sum = 0;
int t = 0;
while(t<7){
sum += h[j]*week[t];
++t;
++j;
j%=7;
}
ans = min(ans, sum);
}
cout << ans << endl;
return 0;
} 
京公网安备 11010502036488号