h_nosonの日記

競プロ、CTFなど

Codeforces Round #350 (Div. 2) A. Holidays

問題
Problem - A - Codeforces
火星では1年がN日続く.また,地球と同じように1週間は平日が5日,休日が2日ある.
1年の休日の数の最大値と最小値はいくつか.

解法
7で割り,最大値を求めるときは余りに対してできるだけ休日から割り当て,最小値を求めるときは余りに対してできるだけ平日から割り当てればいい.

ソースコード

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#define RREP(i,s,e) for (i = s; i >= e; i--)
#define rrep(i,n) RREP(i,(int)(n)-1,0)
#define REP(i,s,e) for (i = s; i <= e; i++)
#define rep(i,n) REP(i,0,(int)(n)-1)
#define INF 100000000

typedef long long ll;

int main() {
    int n;
    cin >> n;
    cout << n/7 * 2 + (n % 7 == 6) << " " << n/7 * 2 + min(n % 7,2) << endl;
    return 0;
}