#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 100000
#define N 1000005
ll tmp[200005][2];
map<ll, ll>cr, cl,r,l;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> tmp[i][0] >> tmp[i][1];
}
string dir;
cin >> dir;
for (int i = 0; i < n; i++)
{
if (dir[i] == 'L')
{
cl[tmp[i][1]]++;
if (cl[tmp[i][1]] == 1)l[tmp[i][1]] = tmp[i][0];
else l[tmp[i][1]] = max(l[tmp[i][1]], tmp[i][0]);
}
else
{
cr[tmp[i][1]]++;
if (cr[tmp[i][1]] == 1)r[tmp[i][1]] = tmp[i][0];
else r[tmp[i][1]] = min(r[tmp[i][1]], tmp[i][0]);
}
}
for (int i = 0; i < n; i++)
{
if (cr[tmp[i][1]]>0&&cl[tmp[i][1]]>0 && r[tmp[i][1]] < l[tmp[i][1]])
{
cout << "Yes"; return 0;
}
}
cout << "No";
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
int t, n, a[maxn],dp[maxn];
cin >> t;
for (int ii = 0; ii < t; ii++)
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
dp[i] = 1;
}
int maxnum = 1;
for (int i = 1; i <= n; i++)
{
for (int k = 2 * i; k <= n; k += i)
{
if (a[k] > a[i])
{
dp[k] = max(dp[k], dp[i] + 1);
maxnum = max(maxnum, dp[k]);
}
}
}
cout << maxnum<<'\n';
}
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int n,m;
int a[1005][1005], f[1005][1005];
int main()
{
cin >> n >> m;
memset(a, 1, sizeof(a));
int x, y;
for (int i = 1; i <= m; i++)
{
cin >> x >> y;
a[x][y] = 0;
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (a[i][j])
{
f[i][j] = min(min(f[i][j - 1], f[i - 1][j]), f[i - 1][j - 1])+1;
}
}
}
int ans = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
ans = max(ans, f[i][j]);
}
}
cout << ans;
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
double n, m, k, p;
double ans, l = 0.000, r = 5.00;
cin >> n >> m >> k;
double sum;
while (l < r)
{
sum = 0;
ans = (l + r) / 2.000;
double fm = 1 + ans;
for (int i = 1; i <= k; i++)
{
sum += m / fm;
fm *= (1 + ans);
}
if (sum - n > 0.000001)
{
l = ans + 0.00000000001;
}
else if (n - sum > 0.000001)
{
r = ans - 0.00000000001;
}
else
{
cout <<fixed<<setprecision(8)<<ans; break;
}
}
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
bool no = 1;
double a[200005] = { 0 };
int n;
double w;
int dfs(double tot, double now, int i)
{
if (now > tot)return 0;
if (now * 2 >= tot && now <= tot)
{
no = 0;
cout << "YES\n";
return 0;
}
else if (i >= n)return 0;
else
{
dfs(tot, now, i + 1);
dfs(tot, now + a[i], i + 1);
}
return 0;
}
int main()
{
int t;
cin >> t;
ll sum, tmp;
for (int ii = 0; ii < t; ii++)
{
no = 1;
sum = 0;
cin >> n >> w;
bool yes = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] <= w)sum += a[i];
}
if (sum < w / 2 )cout << "NO\n";
else cout << "YES\n";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n;
int solve(vector<int>vis, vector<int>num, int i)
{
int ans, cnt;
ans = vis[i];
cnt = 0;
int l = 1, r = n;
while (l < r)
{
while (l < r && num[l] != i)
{
vis[num[l]]--;
l++;
}
while (l < r && num[r] != i)
{
vis[num[r]]--;
r--;
}
cnt += min(vis[i], 2);
vis[i] -= 2;
l++, r--;
for (int j = 1; j <= 26; j++)
{
ans = max(ans, cnt + vis[j]);
}
}
return ans;
}
int main()
{
int T;
cin >> T;
while (T--)
{
cin >> n;
vector<int>vis(30), num(n+5);
for (int i = 1; i <= n; i++)
{
cin >> num[i];
vis[num[i]]++;
}
int ans = 0;
for (int i = 1; i <= 26; i++)
{
if (vis[i] != 0)
{
ans = max(ans, solve(vis, num, i));
/* for (int j = 1; j <= 26; j++)
{
cout << vis[j] << " ";
}*/
//cout << endl;
}
}
cout << ans << endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n, m;
ll qpow(ll a, ll b)
{
ll ans = 1;
while (b)
{
if (b & 1)
{
ans = a * ans;
}
a = a * a;
b >>= 1;
}
return ans;
}
int main()
{
cin >> n >> m;
if (n == 0&&m!=1)
{
cout << qpow(2, m) << endl;
}
else if (m == 1)
{
if (n == 0)
{
cout << 1 << endl;
}
else
{
cout << 2 << endl;
}
}
else
{
cout << qpow(2, m )-1 << endl;
}
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
string s;
cin >> s;
int m;
cin >> m;
int l, r,k;
for (int ii = 0; ii < m; ii++)
{
cin >> l >> r>>k;
l--, r--;
k %= (r - l + 1);
char a[20000];
for (int i = l; i <=r; i++)
{
a[i] = s[i];
}
//r+1-l
for (int i = r+1;i<= r+1+r
-l; i++)
{
a[i] = s[i - r - 1+l];//i-(r+1-l)
}
for (int i = l; i <= r; i++)
{
s[i] = a[i-l+r-k+1];
}
}
cout<<s;
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
ll n;
cin >> n;
ll sum = 0, Max = 0;
for (int i = 1; i <= n; i++)
{
ll tmp;
cin >> tmp;
sum += tmp;
Max = max(Max, tmp);
}
sum -= Max;
if (sum < Max - 1)cout << "NO" << endl;
else cout << "YES" << endl;
return 0;
}
#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
int x, n, op, sum = 0;
set<int>num;
cin >> n;
for (int ii = 0; ii < n; ii++)
{
cin >> op;
if (op == 1)
{
cin >> x;
num.insert(x);
}
else if (op == 2)
{
cin >> x;
auto ed = num.end();
for (auto it = num.begin(); it != ed; it++)
{
num.insert(*it + x);
num.erase(*it);
}
}
else
{
auto it = num.begin();
cout << *it << endl;
num.erase(*it);
}
}
return 0;
}