A:
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef long long LL;
typedef unsigned long long ULL;
LL Gcd(LL a, LL b){if (b == 0) return a; return Gcd(b , a%b);}
LL Lcm(LL a, LL b){ return a/Gcd(a,b)*b;}
inline int read(){
int f = 1, x = 0;char ch = getchar();
while (ch > '9' || ch < '0'){if (ch == '-')f = -f;ch = getchar();}
while (ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}
return x * f;
}
const int maxn = 1e6 + 10;
int s[maxn];
map<int,int> mp;
int main(){
//freopen("/Users/chutong/ACM/data.in","r",stdin);
//freopen("/Users/chutong/ACM/data.out","w",stdout);
int q = read();
while(q--){
mp.clear();
int n = read();
for(int i=1; i<=n; i++){
s[i] = read();
mp[s[i]]++;
}
int tag = 0;
for(int i=0; i<20; i++){
if (mp[(1 << i)] >= 2){
//cout << (1 << i) << endl;
mp[(1 << (i+1))] += mp[(1 << i)]/2;
}
if (mp[2048]) tag = 1;
}
if (tag) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
B:
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef long long LL;
typedef unsigned long long ULL;
LL Gcd(LL a, LL b){if (b == 0) return a; return Gcd(b , a%b);}
LL Lcm(LL a, LL b){ return a/Gcd(a,b)*b;}
inline int read(){
int f = 1, x = 0;char ch = getchar();
while (ch > '9' || ch < '0'){if (ch == '-')f = -f;ch = getchar();}
while (ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}
return x * f;
}
const int maxn = 1e6 + 10;
int main(){
//freopen("/Users/chutong/ACM/data.in","r",stdin);
//freopen("/Users/chutong/ACM/data.out","w",stdout);
int n = read();
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if (i & 1){
if (j & 1) putchar('W');
else putchar('B');
}else{
if (j & 1) putchar('B');
else putchar('W');
}
}
putchar('\n');
}
return 0;
}
C:
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef long long LL;
typedef unsigned long long ULL;
LL Gcd(LL a, LL b){if (b == 0) return a; return Gcd(b , a%b);}
LL Lcm(LL a, LL b){ return a/Gcd(a,b)*b;}
inline int read(){
int f = 1, x = 0;char ch = getchar();
while (ch > '9' || ch < '0'){if (ch == '-')f = -f;ch = getchar();}
while (ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}
return x * f;
}
#define int long long
const int maxn = 1e6 + 10;
int c,m,x;
bool check(int val){
int l1 = c - val;
int l2 = m - val;
int l3 = x;
if (l1 < 0 || l2 < 0) return false;
if (l1 + l2 + l3 >= val) return true;
else return false;
}
signed main(){
//freopen("/Users/chutong/ACM/data.in","r",stdin);
//freopen("/Users/chutong/ACM/data.out","w",stdout);
int q = read();
while(q--){
c = read(),m = read(),x = read();
int l = 1,r = max(c,m) + 1;
while(l < r){
int mid = (l + r) >> 1;
if (check(mid)) l = mid + 1;
else r = mid;
}
cout << l - 1 << endl;
}
return 0;
}
D:
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef long long LL;
typedef unsigned long long ULL;
LL Gcd(LL a, LL b){if (b == 0) return a; return Gcd(b , a%b);}
LL Lcm(LL a, LL b){ return a/Gcd(a,b)*b;}
#define int long long
inline int read(){
int f = 1, x = 0;char ch = getchar();
while (ch > '9' || ch < '0'){if (ch == '-')f = -f;ch = getchar();}
while (ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}
return x * f;
}
const int maxn = 1e6 + 10;
LL dp[maxn][5],a[maxn],b[maxn];
signed main(){
int T = read();
while(T--){
int n = read();
for(int i=1;i<=n;i++){
a[i] = read();
b[i] = read();
}
for(int i=1;i<=n;i++){
for(int j=0;j<5;j++){
dp[i][j] = 1e18;
}
}
for(int i=0; i<5; i++){
dp[1][i] = b[1]*i;
}
for(int i=2;i<=n;i++){
for(int j=0;j<5;j++){
for(int k=0;k<5;k++){
if(a[i-1]+j!=a[i]+k){
dp[i][k]=min(dp[i][k],dp[i-1][j]+1ll*k*b[i]);
}
}
}
}
LL ans = LLONG_MAX;
for(int i=0;i<5;i++)
ans=min(ans,dp[n][i]);
printf("%lld\n",ans);
}
return 0;
}