USACO 1.1 Friday the Thirteenth (friday)

/*
ID: haolink1
PROG: friday
LANG: C++
*/
//#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>

using namespace std;
int isleap(int year){
    return year%4==0 && (year%100 != 0 || year%400 == 0);
}

/* return length of month m in year y */
int MonthLen(int year, int month,int* month_table){

    if(month == 1)    /* february */
        return month_table[month]+isleap(year);
    else
        return month_table[month];
}

int main(){
    ifstream fin("friday.in");
    string period_str;
    getline(fin,period_str);
    int period = atoi(period_str.c_str());
    //start form Saturday
    int category_couter[] = {0,0,0,0,0,0,0};
    int month_table[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    //January 13, 1900 was a Saturday,so day_of_week = 0
    int day_of_week = 0;
    for(int current_year = 1900;current_year<1900+period;current_year++){
         for(int month=0;month<12;month++){
            category_couter[day_of_week]++;
            day_of_week=(day_of_week+MonthLen(current_year,month,month_table))%7;
         }
    }
        ofstream fout("friday.out");
    int i=0;
    for(;i<6;i++){
        fout<<category_couter[i]<<" ";
    }
    fout<<category_couter[i]<<endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值