2016-08-06 USACO USACO 1.1 Friday Straightforward brutal force implementation. #include <iostream>#include <fstream>#include <string>#include <vector>using namespace std;class Checker {public: int day, year, offset; Checker() : day(1), year(1900), offset(1) { frequentCounterList = {0, 0, 0 , 0, 0, 0, 0, 0}; month2days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; } void traverse(int n) { for (int i = 0; i < n; ++i) { for (int month = 1; month <= 12; ++month) { day = offset + 12; frequentCounterList[day % 7 + 1]++; if (month == 2) { if (isLeapYear(year)) offset += 29; else offset += 28; } else offset += month2days[month]; } ++year; } } vector<int> getFrequency() const { return frequentCounterList; }private: vector<int> frequentCounterList; vector<int> month2days;private: bool isLeapYear(int year) { if (year % 100 == 0) return year % 400 == 0; return year % 4 == 0; };};int main() { ofstream fout ("friday.out"); ifstream fin ("friday.in"); string years; getline(fin, years); Checker checker; checker.traverse(stoi(years)); auto list = checker.getFrequency(); fout << list[7] << " " << list[1] << " " << list[2] << " " << list[3] << " " << list[4] << " " << list[5] << " " << list[6] << endl; return 0;} Newer USACO 1.1 Broken Necklace Older USACO 1.1 Greedy Gift Givers