Go: package main

import (
	"fmt"
)

func calcDay(daily, bonus, req int) int {
	fullWcoin   := 7 * daily + bonus	//"週給"
	sixDaycoin := 6 * daily				//6日目まででもらえるコイン

	week := req / fullWcoin //必要満週数
	day := 0
	rem  := req % fullWcoin
		
		if sixDaycoin < rem && rem < fullWcoin {
			week++
		} else {
			day = rem / daily
				if rem % daily > 0 {
					day++
				}
		}

	return 7 * week + day
}

func main() {
	var daily, bonus, req int
		fmt.Scanf("%d %d %d",&daily ,&bonus ,&req)
		fmt.Printf("%d\n",calcDay(daily, bonus, req))
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,c;
    int ans=0;
    int sum=0;
    cin>>a>>b>>c;
    while(sum<c){
        ans+=1;
        sum+=a;
        if(ans%7==0){
            sum+=b;
        }
    }
    cout<<ans<<endl;
}

C++: #include<iostream>
using namespace std;

int main() {

int A , B , C = 0 ;
int days = 0 ; 
int week_day_count = 0 ; // 週の何日目かのカウント。月曜日:1 , 火曜日:2 , …　土曜日:6 , 日曜日:7

cin >> A >> B >> C ;

	while( C > 0 ){
	
	days = days + 1 ;			// 「経過日数」を1追加
	week_day_count = week_day_count + 1 ;	// 週の何日目かのカウントを1追加

	C = C - A ;				// 毎日のログインボーナスの処理

		if( 7 == week_day_count ) 	//「日曜日になったとき」の処理。if( week_day_count == 7 )としなかったのはミス防止
		{ C = C - B ; 
		  week_day_count = 0 ;		// 週の何日目かのカウントを1（月曜日）にする。
		}else{				// C++ではelse{}は省略可
		}

		if( C <= 0 ) 	// Cが0未満になったときループを抜ける
		{
		break;
		}else{				// C++ではelse{}は省略可
		}


	}

cout << days << endl;

}

C++: #include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

int main(){
	int A, B, C;
	cin >> A >> B >> C;
	int sum = 0;
	int days = 0;
	while(true){
		if(sum + A*7 + B >= C){
			for(int i = 0; i < 7; i++){
				sum += A;
				days++;
				if(i == 6){
					sum += B;
				}
				if(sum >= C){
					break;
				}
			}
		}
		else{
			sum += A*7 + B;
			days += 7;
		}
		if(sum >= C){
			break;
		}
	}
	cout << days << "\n";
}

C++: #include<iostream>
using namespace std;

int main(){

int A,B,C,day,sum=0;

cin>>A>>B>>C;

for(int i=1;i<=1000000;i++){
sum=sum+A;
if(i%7==0){
sum=sum+B;
}

if(sum >= C){
day=i;
break;
}
}

cout<<day<<endl;

return 0;
}

C++: #include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>
#include <cstdio>
#include <float.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <stack>
#include <limits.h>
#include <cstdlib>
#include <string>
#include <ctime>
#include <cmath>
#include <cstdlib>
#include <cfloat> 
using namespace std;
int main(void) {
	int a, b, c,day=0,i=7,j=0;
	scanf("%d %d %d", &a, &b, &c);
	while (1) {
		if (j >= c)
			break;
		j = j+a;
		day++;
		if (day%7==0) {
			i = i * 2;
			j = j + b;
		}
	}
	printf("%d\n", day);
	return 0;
}

C++: #include<vector>
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <cmath>
#include<queue>
#include <sstream>

#define INF 100000000000000
using namespace std;
typedef long long llong;

//int isalpha(char ch): ch がアルファベットなら true を返す
//int isdigit(char ch): ch が数字なら true を返す
//int islower(char ch): ch が小文字なら true を返す
//int isupper(char ch): ch が大文字なら true を返す
//int tolower(char ch): ch の小文字を返す
//int toupper(char ch): ch の大文字を返す

//string型
//size()	文字数を返す
//Insert()	（指定した場所に）文字・文字列を挿入する
//erase()	（指定した場所の）文字・文字列を削除する
//clear()	すべての文字を削除する
//substr()	文字列の（指定した）部分文字列を返す
//replace()	（指定した）部分文字列を新しい文字列に置換する
//c_str()変換
//文字列の比較は、<=や==などを使え
//replace関数を使い、簡単に文字列を置換
//リバース関数：reverse(str.begin(), str.end());
//map<type, type> dict;で宣言
//グラフ理論用変数
//vector<vector<llong> > graph(N);

//ソート
//降順sort(v.begin(), v.end(), std::greater<Type>());

//大文字から小文字へんかん
//w[i] = w[i]-'A'+'a';

//vector
//assignメソッド　引数：サイズ、値
//与えられたサイズと値でvectorを初期化する

//queueクラス
//find()次に取り出す値の表示をする。
//pop()値を取り出す。戻り値はなし
//push()キューに値をプッシュする

//priority_queueクラス

//切り上げ
//ceil
//floor

int main(){
    llong A,B,C;
    cin >> A >> B >> C;
    llong ans=0;
    llong total = 0;
    while(1){
        ans++;
        total = total + A;
        if(ans%7==0){
            total = total + B;
        }
        if(total>=C){
            break;
        }
    }
    cout << ans << endl;
    return 0;
}

C++: #include <iostream>
using namespace std;

int main(void) {
    int A,B,C;cin>>A>>B>>C;
    int cnt = 0;
    int coins = 0;
    while (true) {
        cnt++;
        coins += A;
        if (cnt % 7 == 0) coins += B;
        if (coins >= C) break;
    }
    cout << cnt << endl;
    return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0; i<(int)(n); i++)
#define all(vec) vec.begin(), vec.end()

int main() {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    int ans;
    ans = c/(7*a+b)*7; 
    if ((c%(7*a+b)+a-1)/a >= 7) ans += 7;
    else ans += (c%(7*a+b)+a-1)/a;
    printf("%d\n", ans);
}

C++: #include <iostream>
using namespace std;

int main(void){
    int a,b,c;
    cin>>a>>b>>c;
    int n=c/(a*7+b);
    int rem=c-n*(a*7+b);
    if(rem%a==0)cout<<n*7+rem/a<<endl;
    else cout<<n*7+(rem/a)+1<<endl;
    return 0;
}

C++: #include<iostream>
using namespace std;
int main(){

	int A, B, C;
	int have = 0, ans = 0;
	cin >> A >> B >> C;
	for (int i = 1; i <= C; i++){
		have += A;
		if (i % 7 == 0) have += B;
		if (have >= C){
			ans = i;
			break;
		}
	}

	cout << ans << endl;

	return 0;
}

C++: #include <iostream>
using namespace std;

int main(void){
    int a,b,c;
    cin>>a>>b>>c;
    int n=c/(a*7+b);
    int rem=c-n*7;
    cout<<n*7+(rem-rem%a)/a<<endl;
    return 0;
}

C++: #include<iostream>
using namespace std;

int main(){
    int a,b,c;
    cin >> a >> b >> c;
    int i=0;
    while(c>0){
        i++;
        if(i%7==0){
            c=c-a-b;
        }
        else{
            c=c-a;
        }
    }
    cout << i << endl;
    return 0;
}

C++: #include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <fstream>
#include <iostream>
#include <map>
#include <queue>
#include <string>
#include <stack>
#include <vector>
using namespace std;
typedef long long ll;
int main(){
  int a,b,c;
  cin >> a >> b >> c;

  int week_num = c/(a*7+b);
  
  int ans = week_num * 7 + (c - week_num * (a * 7 + b) + a - 1)/a;

  int anss = (c+a*7+b-1)/(a*7+b) * 7;
  cout << min(ans,anss) << endl;
}

C++: #include<iostream>
using namespace std;

int main(void){
    int a,b,c,day = 0,sum = 0;

    cin >> a >> b >> c;
    while(sum < c){
        day++;
        sum += a;
        if(day % 7 == 0){
            sum += b;
        }
    }

    cout << day << endl;
}

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<iomanip>
#include<math.h>
#include<complex>
#include<queue>
#include<deque>
#include<stack>
#include<map>
#include<set>
#include<bitset>
#include<functional>
#include<assert.h>
#include<numeric>
#include<stdio.h>
#include <cstdint>
using namespace std;
#define REP(i,m,n) for(int i=(int)(m) ; i < (int) (n) ; ++i )
#define rep(i,n) REP(i,0,n)
using ll = long long;
const int inf = 1e9 + 7;
const ll longinf = 1LL << 60;
const ll mod = 1e9 + 7;

int a, b, c, cnt, tmp;


int main() {

	cin >> a >> b >> c;

	while (c > tmp) {
		cnt++;
		tmp += a;
		if (cnt % 7 == 0)tmp += b;
	}

	cout << cnt << endl;

	return 0;
}

C++: #include <bits/stdc++.h>
typedef long long ll;
using namespace std;

int main() {
	ll a,b,c;
	ll day = 1,coin=0;
	cin >> a >> b >> c;

	while (true) {
	
		if (day % 7 == 0)
			coin += a + b;
		else
			coin += a;

		if (c <= coin)
			break;

		day++;
	}

	cout << day << endl;
		
}

C++: #include <iostream>
using namespace std;
int main(void){
    int x, y, z, w, u;
    w = 0,u = 0; 
    cin >> x >> y >> z;
    while(true){
        u += 1;
        w += x;
        if(u%7 == 0){
           w += y;
        }
        if (w >= z){
           break;
        }
    }
    cout << u <<endl;
}