A - Heating
题意:一个房间,最多装c个加热器,若某个加热器长度为k,则花费为k*k,覆盖这n个长度求最小花费。
题解:首先每个格子只装最多一个,先取min。然后肯定是最平均最好,小平均值是n/d取下整,大平均值是小平均值+1,大平均值的个数是n%d,小平均值的个数即剩下的。
#include<bits/stdc++.h> using namespace std; typedef long long ll; void test_case() { ll r, b, k; scanf("%lld%lld%lld", &r, &b, &k); if(r > b) swap(r, b); ll g = __gcd(r, b); r /= g, b /= g; ll suc = ((b - 1) >= (k - 1) * r + 1); if(suc) { puts("REBEL"); return; } else { puts("OBEY"); return; } } int main() { #ifdef KisekiPurin freopen("KisekiPurin.in", "r", stdin); #endif // KisekiPurin int t = 1; scanf("%d", &t); for(int ti = 1; ti <= t; ++ti) { //printf("Case #%d: ", ti); test_case(); } }