#include<bits/stdc++.h>usingnamespace std;typedeflonglong ll;constint MAXN =3e5+20;constint MOD =1e9+7;int n;intmain(){int a,b;
cin >> a >> b;if(a==b){cout << a <<"0"<<" "<< b <<"1"<< endl;}elseif(a+1==b){cout << a <<" "<< b << endl;}elseif(a==9&& b ==1)cout <<"9 10"<< endl;elseputs("-1");}
TV Subscriptions (Easy Version)
#include<bits/stdc++.h>usingnamespace std;typedeflonglong ll;constint MAXN =2e5+20;constint MOD =1e9+7;int n,k,d;
map<int,int>ma;int num[MAXN];intmain(){int _;
cin >> _;while(_--){
cin >> n >> k >> d;
ma.clear();int minn=d;for(int i =0; i < n;++i){
cin >> num[i];
ma[num[i]]++;if(i >= d){
ma[num[i-d]]--;if(ma[num[i-d]]==0){
ma.erase(num[i-d]);}}if(i>=d-1){
minn=min(minn,(int)ma.size());}//cout << "i:" << i << ":size:" << ma.size() << endl;}
cout << minn << endl;}}
TV Subscriptions (Hard Version)
#include<bits/stdc++.h>usingnamespace std;typedeflonglong ll;constint MAXN =2e5+20;constint MOD =1e9+7;int n,k,d;
map<int,int>ma;int num[MAXN];intmain(){int _;
cin >> _;while(_--){
cin >> n >> k >> d;
ma.clear();int minn=d;for(int i =0; i < n;++i){
cin >> num[i];
ma[num[i]]++;if(i >= d){
ma[num[i-d]]--;if(ma[num[i-d]]==0){
ma.erase(num[i-d]);}}if(i>=d-1){
minn=min(minn,(int)ma.size());}//cout << "i:" << i << ":size:" << ma.size() << endl;}
cout << minn << endl;}}
p-binary
#include<bits/stdc++.h>usingnamespace std;typedeflonglong ll;constint MAXN =2e5+20;constint MOD =1e9+7;
ll n,k;intloglen(ll i){int len=0;while(i){
i >>=1;
len++;//cout << i << endl;}return len;}intrenum(ll i){int len=0;while(i){if(i&1)len++;
i >>=1;}return len;}intmain(){
cin >> n >> k;int lenn=loglen(n);int lenn2=loglen(n-lenn*k);for(int i =0; i <30;++i){
n-=k;if(n<=0){puts("-1");return0;}if(i+1>n && k>=0){puts("-1");return0;}int rn =renum(n);//cout << rn << "rn" << endl;if(rn <= i+1){
cout << i+1<< endl;return0;}}puts("-1");return0;}
Power Products
#include<bits/stdc++.h>usingnamespace std;typedeflonglong ll;constint MAXN =1e5+20;constint MOD =1e9+7;#define coutdebug(i) {cout<<"(i)"<<(i)<<endl;}int n,k;
ll num[MAXN];
map<int,ll>ma,mf;
vector<int>vec;
ll cpow(ll i,int b=k){if(b==0)return1;
ll ans = i;if(i==1)return i;for(int j =1; j < b;++j){
ans*=i;if(ans >1e10)return-1;}return ans;}
ll fun(ll a,int b=k ){
ll r =1;
ll base = a;while( b){if(b &1){
r *= base;if(r >1e10)return-1;if(b==1)return r;}
base *= base;//注意:a^{2^7}=a^{2^6} * a^{2^6} ,而不是 a^{2^7}=a^{2^6} * a ,所以這是對的。if(base >1e10)return-1;
b /=2;//與b=b>>1相同}return r;}intfactor(int n){int remain=1;for(int i=2,a=1; i*i<=n; i+=a,a=2){int cnt=0;if(n%i==0)while(n%i==0){
cnt++;
n /= i;}
remain*=cpow(i,cnt%k);}if(n >1)
remain*=n;return remain;}intmain(){scanf("%d%d",&n,&k);
ll min0=MAXN,max0=0;
ll max1,min1;for(int i =0; i < n;++i){int cur;scanf("%d",&cur);
cur=factor(cur);//cout << cur << endl;
num[cur]++;
ma[cur]++;
max0=max(max0,(ll)cur);
min0=min(min0,(ll)cur);}if(k==2){
ll ans=0;for(int i =1; i <= max0;++i){if(num[i])
ans+=num[i]*(num[i]-1)/2;}
cout << ans << endl;return0;}{auto it = ma.end();
it--;
max0=it->first;if(it->second==1){
it--;
max1=it->first;}else max1=it->first;auto it1=ma.begin();
min0=it1->first;if(it1->second==1){
it1++;
min1=it1->first;}else min1=it1->first;}for(auto mit=ma.begin();mit!=ma.end();mit++)
vec.push_back(mit->first);
ll ans=0;for(ll i =1;i<=max0;++i){//cout << "i:" << i << endl;
ll powk=fun(i);if(powk==-1)break;if(powk<min0*min1)continue;if(powk>max0*max1)break;auto it = std::lower_bound (vec.begin(), vec.end(),(powk/max0));//cout << "lowerbound:" << it->first << endl;for(; it!=vec.end();++it){
ll a=(*it);if(a*a>powk)break;if(powk%a!=0)continue;
ll b=powk/a;if(b > max0)continue;//cout << a << " a b " << b << endl;if(a==b){
ans+=(num[a])*(num[a]-1)/2;break;}if(num[b]){
ans+=(num[a])*(num[b]);}}//cout << "ans" << ans << endl;}
cout << ans << endl;}/*
2 1
1 1
9 2
2 4 6 8 10 11 11 12 16
8 2
2 4 6 8 10 11 11 12
*/