Tencent
1.
n,m=map(int,input().strip().split())
la=list(map(int,input().strip().split()))
lb=list(map(int,input().strip().split()))
mina=min(la)
maxa=max(la)
minb=min(lb)
maxb=max(lb)
if max(mina*minb,mina*maxb)>max(maxa*minb,maxa*maxb):
la.remove(mina)
else:
la.remove(maxa)
mina=min(la)
maxa=max(la)
ans=max(max(mina*minb,mina*maxb),max(maxa*minb,maxa*maxb))
print(ans)
2.
n = int(input().strip())
a = list(map(int, input().strip().split()))
a = list(map(abs, a))
a.sort()
res = 0
j = 0
for i in range(n-1):
while j < n and a[i] * 2 >= a[j]:
j += 1
res += (j - i - 1)
print(res)
3.
20%
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<climits>
#include<vector>
#include<queue>
#include<algorithm>
#include<stack>
#include<sstream>
#include<set>
using namespace std;
typedef long long ll;
vector<pair<int,int> > vec;
bool cmp(pair<int,int> a,pair<int,int> b){
return b.first*(ll)b.second<a.first*(ll)a.second;
}
int main(){
int n,k;
cin>>n>>k;
int x,y;
for(int i=0;i<n;i++){
cin>>x>>y;
vec.push_back(pair<int,int>(x,y));
}
sort(vec.begin(),vec.end(),cmp);
long long ans=0,temp;
int min=INT_MAX,sum=0;
for(int i=0;i<n&&k>0;i++){
//cout<<vec[i].first<<" "<<vec[i].second<<endl;
sum+=vec[i].first;
if(vec[i].second<min)
min=vec[i].second;
temp=sum*min;
if(temp>ans){
ans=temp;
k--;
}
}
cout<<ans<<endl;
system("PAUSE");
return 0;
}
4.
20%
#include<iostream>
#include<cstring>
#include<string>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
using namespace std;
int main(){
//freopen("E:\\data.txt","r", stdin);
int n,m;
scanf("%d %d\n", &n,&m);
string str;
vector<string> dic;
//set<string> dic;
map<string, bool> visit;
for(int i=0;i<n;i++){
//scanf("%s",str);
getline(cin,str);
dic.push_back(str);
//dic.insert(str);
visit[str]=false;
}
sort(dic.begin(), dic.end());
string pre, end;
for(int i=0;i<m;i++){
//scanf("%s %s", pre, end);
cin>>pre>>end;
bool flag=false;
for(int j=0;j<n;j++){
string now = dic[j];
string nowpre = now.substr(0, pre.size());
string nowend = now.substr(0, end.size());
if(nowpre==pre&&nowend!=end&&visit[now]==false){
//printf("%s\n",now);
cout<<now<<endl;
visit[now]=true;
flag=true;
break;
}
}
if(flag==false){
printf("-1\n");
}
}
return 0;
}
5.
Not all A
#include<iostream>
#include<string>
#include<vector>
#include<cmath>
using namespace std;
long long power(int k, int n){
long long ans=1;
for(int i=0;i<n;i++){
ans*=k;
}
return ans;
}
long long convert(string str, int k){
int len=str.length();
long long ans=0;
for(int i=0;i<len;i++){
if(str[i]>='0'&&str[i]<='9'){
ans += (str[i]-'0')*power(k,len-1-i);
}else{
ans += (str[i]-'A'+10)*power(k,len-1-i);
}
}
return ans;
}
string out(long long ans, int k){
string temp;
do{
int t = ans%k;
ans /= k;
if(t<10){
temp.insert(temp.begin(),t+'0');
}else{
temp.insert(temp.begin(),(t-10)+'A');
}
}while(ans);
return temp;
}
int main(){
//freopen("E:\\data.txt","r",stdin);
int T;
scanf("%d", &T);
long long num1=0,num2=0;
char op;
int k;
string str1,str2;
long long ans;
for(int i=0;i<T;i++){
cin>>k;
cin>>str1>>str2>>op;
//if(k!=10){
num1 = convert(str1,k);
num2 = convert(str2,k);
// }
if(op=='+'){
ans= num1+num2;
}else if(op=='-'){
ans = num1 -num2;
}else{
ans = num1* num2;
}
string output = out(ans,k);
cout<<output<<endl;
}
return 0;
}