cf #740 Div.2
A. The Miracle and the Sleeper
对于 R 如果 L >= (R/2+1) 答案为 R - L 否则答案为 R - (R/2+1)
#include<bits/stdc++.h>
using namespace std;
int T;
int main(){
scanf("%d",&T);
while(T --){
int l,r;cin >> l >> r;
if(l <= (r/2+1)){
l = (r/2+1);
}
cout << r - l << endl;
}
return 0;
}
B. Scenes From a Memory
可以特判
#include<bits/stdc++.h>
using namespace std;
int T,a[55],cnt[13],prime[14],pian[14][14];
int main(){
scanf("%d",&T);
prime[2] = 1;prime[3] = 1;prime[5] = 1;prime[7] = 1;
pian[2][5] = 25;pian[2][7] = 27;pian[3][5] = 35;
pian[5][2] = 52;pian[3][2] = 32;pian[7][2] = 72;
pian[7][5] = 75;pian[5][7] = 57;
while(T --){
memset(a,0,sizeof(a));memset(cnt,0,sizeof(cnt));
int n;scanf("%d",&n);
bool flag = 0;
for(int i = 1;i <= n;i ++)scanf("%1d",&a[i]);
for(int i = 1;i <= n;i ++){
if(prime[a[i]] == 0){
printf("1\n%d\n",a[i]);
flag = 1;
break;
}
}
if(flag == 1)continue;
for(int i = 1;i <= n; i++){
cnt[a[i]]++;
if(cnt[a[i]] >= 2){
printf("2\n%d\n",a[i]*10+a[i]);
flag = 1;
break;
}
}
if(flag == 1)continue;
for(int i = 1;i <= n;i ++){
for(int j = i+1;j <= n;j ++){
if(pian[ a[i] ][ a[j] ] && prime[a[i]] && prime[a[j]]){
printf("2\n%d\n",pian[ a[i] ][ a[j] ]);
flag = 1;
break;
}
}
if(flag == 1)break;
}
if(flag == 1)continue;
}
return 0;
}
}
余下暂不更新