intmain() { LL res = 0; cin >> a >> b >> n; res = n / (5 * a + 2 * b) * 7; // 完整的周数*7 n %= (5 * a + 2 * b); // 剩余的魔力值 if (n != 0) { if (n < 5 * a) // 工作日能完成 { if (n % a != 0) res += n / a + 1; else res += n / a; } else// 工作日不能完成 { res += 5; n -= 5 * a; if (n % b != 0) res += n / b + 1; else res += n / b; } } cout << res << endl; return0; }
voidsolve() { set<int> se; map<pii, int> mp; cin >> n >> m >> k; vector<int> zhi(k + 1); for (int i = 1;i <= n;i++) { int t; cin >> t; se.insert(t); } int ans = 0; int res = 0; for (int i = 1;i <= m;i++) { cin >> a[i] >> b[i]; if (a[i] > b[i]) swap(a[i], b[i]);
if (a[i] == b[i]) { if (!se.count(a[i])) zhi[a[i]]++; else res++; } else { if (!se.count(a[i]) && se.count(b[i])) zhi[a[i]]++; elseif (se.count(a[i]) && !se.count(b[i])) zhi[b[i]]++; elseif (se.count(a[i]) && se.count(b[i])) res++; else mp[{a[i], b[i]}]++; } } for (int i = 1;i <= m;i++) { if (a[i] == b[i]) { if (!se.count(a[i])) ans = max(ans, res + zhi[a[i]]); } else { if (!se.count(a[i]) && !se.count(b[i])) ans = max(ans, res + mp[{a[i], b[i]}] + zhi[a[i]] + zhi[b[i]]); } } int mx = 0, cimx = 0; for (int i = 1;i <= k;i++) { if (zhi[i] > mx) { cimx = mx; mx = zhi[i]; } elseif (zhi[i] > cimx) cimx = zhi[i]; } ans = max(ans, res + mx + cimx); cout << ans << '\n'; }
intmain() { ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int T = 1; // cin >> T; while (T--) { solve(); } return0; }
voidinsert(ll x) { ll p = 0; for (int i = 31;~i;i--) // 拆位插入字典树 { ll& s = son[p][x >> i & 1]; if (!s) s = ++idx; p = s; } }
ll query(ll x) { ll res = 0, p = 0; for (int i = 31;~i;i--) { ll s = x >> i & 1; if (son[p][!s]) // 尽量选择与当前位不同的路径 { res += 1ll << i; p = son[p][!s]; } else p = son[p][s]; } return res; }
voidsolve() { cin >> n; for (int i = 1;i <= n;i++) { cin >> a[i]; insert(a[i]); } ll res = 0; for (int i = 1;i <= n;i++) res = max(res, query(a[i])); cout << res << '\n'; }
intmain() { ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int T = 1; //cin >> T; while (T--) { solve(); } return0; }