你想要的oj全集

这篇文章并非原创,是从同学和网络上的答案整理得出,在此感谢。答案仅供参考,最重要的是有自己的独立思考与总结。
Problem:1100

#include<stdio.h>
int main()
{
int n;
double b,h;
double s;
scanf(“%d”,&n);
while(n–)
{
scanf(“%lf %lf”,&b,&h);
s=b*h/2;
printf(“%.1f\n”,s);
}

}

Problem:1103

#include<stdio.h>
int riqi(int year,int morth,int day)
{
int i;
int sumday=0;
int x[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int y = (year%40&&year%100!=0)||(year%4000);
for(i=0;i<morth-1;i++)
{
sumday += x[y][i];
}
sumday=sumday+day;
return sumday;
}
main()
{
int x,y,z;
int i,n;
int sum=0;
scanf(“%d”,&n);
while (n–)
{
scanf(“%d-%d-%d”,&x,&y,&z);
sum= riqi(x,y,z);
printf(“%d\n”,sum);
}
}

Problem:1105

#include<stdio.h>
int max(int x,int y)
{
int temp;
while(y)
{
temp=x%y;
x=y;
y=temp;
}
return x;
}
int main()
{
int k;
int a,b,c,d,m,n,i,j,x,y;
scanf(“%d”,&k);
for(i=0;i<k;i++)
{
scanf(“%d %d %d %d”,&a,&b,&c,&d);
x=bd;
m=a
d+cb;
y=max(x,m);
if(x==y)
printf("%d “,m/x);
else
printf(”%d/%d ",m/y,x/y);
n=a
d-c*b;
if(n<0)
{
n=-n;j=1;
}
else
j=0;
y=max(x,n);
if(j0)
{
if(x
y)
printf(“%d\n”,n/x);
else
printf(“%d/%d\n”,n/y,x/y);
}
else
{
if(x==y)
printf(“-%d\n”,n/x);
else
printf(“-%d/%d\n”,n/y,x/y);
}
}
return 0;
}

Problem:1108

#include<stdio.h>
#include<string.h>
int ch(char a[],int z)
{
int t=0,f=1,i=0,j;
if(a[0]==‘-’){
f=-1;
i=1;
}
j=strlen(a);
for(;i<j;i++){
if(a[i]>=‘0’&&a[i]<=‘9’) a[i]=a[i]-‘0’;
if(a[i]>=‘A’&&a[i]<=‘Z’) a[i]=a[i]-‘A’+10;
if(a[i]>=‘a’&&a[i]<=‘z’) a[i]=a[i]-‘a’+36;
t=t*z+a[i];

} 
return t*f;

}
int main()
{
int n,a,b,c;
scanf(“%d”,&n);
while(n–){
char str[1000],temp[1000];
scanf(“%s %d %s %d”,&str,&a,&temp,&b);
c=ch(str,a)+ch(temp,b);
printf(“%d\n”,c);
}
}

Problem:1108

#include<stdio.h>
#include<string.h>
int ch(char a[],int z)
{
int t=0,f=1,i=0,j;
if(a[0]==‘-’){
f=-1;
i=1;
}
j=strlen(a);
for(;i<j;i++){
if(a[i]>=‘0’&&a[i]<=‘9’) a[i]=a[i]-‘0’;
if(a[i]>=‘A’&&a[i]<=‘Z’) a[i]=a[i]-‘A’+10;
if(a[i]>=‘a’&&a[i]<=‘z’) a[i]=a[i]-‘a’+36;
t=t*z+a[i];

} 
return t*f;

}
int main()
{
int n,a,b,c;
scanf(“%d”,&n);
while(n–){
char str[1000],temp[1000];
scanf(“%s %d %s %d”,&str,&a,&temp,&b);
c=ch(str,a)+ch(temp,b);
printf(“%d\n”,c);
}
}

Problem:1109

#include<stdio.h>
#include<string.h>
min(int a,int v)
{
if(a>v)
{
return v;
}
return a;
}
int h(char a[],char b[],int n)
{
int i,cnt;
for(cnt=0;cnt<n;cnt++)
{
if(a[cnt]!=b[cnt])
{
return cnt;
}
}
return cnt;
}
char str[21][201];
int main()
{
int k,x;
scanf(“%d”,&k);
for(x=1;x<=k;x++)
{
int i,j,m=300,mi=300;
for(i=0;i<21;i++)
{
for(j=0;j<201;j++)
{
str[i][j]=0;
}
}
int n;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
scanf(“%s”,str[i]);
m=(m,strlen(str[i]));
}
printf(“Case %d: “,x);
for(i=1;i<n;i++)
{
mi=min(mi,h(str[i],str[i+1],m));
}
for(i=0;i<mi;i++)
{
printf(”%c”,str[1][i]);
}
printf(“\n”);
}
return 0;
}

Problem:1109

#include<stdio.h>
#include<string.h>
min(int a,int v)
{
if(a>v)
{
return v;
}
return a;
}
int h(char a[],char b[],int n)
{
int i,cnt;
for(cnt=0;cnt<n;cnt++)
{
if(a[cnt]!=b[cnt])
{
return cnt;
}
}
return cnt;
}
char str[21][201];
int main()
{
int k,x;
scanf(“%d”,&k);
for(x=1;x<=k;x++)
{
int i,j,m=300,mi=300;
for(i=0;i<21;i++)
{
for(j=0;j<201;j++)
{
str[i][j]=0;
}
}
int n;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
scanf(“%s”,str[i]);
m=(m,strlen(str[i]));
}
printf(“Case %d: “,x);
for(i=1;i<n;i++)
{
mi=min(mi,h(str[i],str[i+1],m));
}
for(i=0;i<mi;i++)
{
printf(”%c”,str[1][i]);
}
printf(“\n”);
}
return 0;
}

Problem:1112

#include<stdio.h>
int main()
{
int n;
int x1,y1,x2,y2,x3,y3;
scanf(“%d”,&n);
while(n–)
{
scanf(“%d%d”,&x1,&y1);
scanf(“%d%d”,&x2,&y2);
scanf(“%d%d”,&x3,&y3);
if((y2-y1)(x3-x2)==(y3-y2)(x2-x1))
printf(“Yes\n”);
else
printf(“No\n”);
}
}

Problem:1113

#include<stdio.h>
int main()
{
int n,i,x1,y1,x2,y2;
scanf(“%d”,&n);
for(i=0;i<n;i++){
scanf(“%d %d”,&x1,&y1);
scanf(“%d %d”,&x2,&y2);
if((x2>=x1&&x2<=y1)||(y2>=x1&&y2<=y1)||(x1>=x2&&x1<=y2)||(y1>=x2&&y1<=y2))
printf(“Yes\n”);
else printf(“No\n”);
}
}

Problem:1114

#include <stdio.h>
#include <string.h>
char a[222];
int main()
{
int K;
scanf(“%d”,&K);
while(K–){
int k,l,i,j,t;
scanf(“%s”,a);
int h=strlen(a);
scanf(“%d %d”,&k,&l);
for(i=0;i<l/2;i++){
t=a[k+i-1];
a[k+i-1]=a[k+l-i-2];
a[k+l-i-2]=t;
}
printf(“%s\n”,a);
}
return 0;
}

Problem:1115

#include<stdio.h>
#include<String.h>
int main()
{
int k,a,b,i,l,flag;

scanf("%d",&k);
while(k--)
{
    char str[201];
    flag=1;
    scanf("%s",str);
    scanf("%d%d",&a,&b);
    
    for(i=0;i<b-1;i++)
    {
        //printf("%d\n",i);
        if(str[a-1+i]!=str[a-2+b-i])
        {
            flag=0;
        }
    }
    if(flag)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
}
return 0; 

}

Problem:1116

#include<stdio.h>
int xpow(int x,int y){
int k=1;
for(int i=0;i<y;i++)
k*=x;
return k;
}
int main()
{
while(1){
int a;
scanf(“%d”,&a);
if(a==0)
break;
int k=0;
int A=a;
int c=a;
for(int i=0;i<7;i++){
k++;
if((A/=10)0)
break;
}
int m=0;
for(int i=0;i<k;i++){
m+=xpow(a%10,k);
a/=10;
}
if(m
c)
printf(“Yes\n”);
else printf(“No\n”);
}
return 0;
}

Problem:1118

#include<stdio.h>
#include<math.h>
int main()
{
int k,disc,a,b,c;
scanf(“%d”,&k);
while(k–){
scanf(“%d %d %d”,&a,&b,&c);
disc=bb-4a*c;
if(a0){
if(b
0) printf(“INF\n”);
else if(b!=0) printf(“1\n”);
}
else{
if(disc>0) printf(“2\n”);
else if(disc==0) printf(“1\n”);
else if(disc<0) printf(“0\n”);
}
}
return 0;
}

Problem:1126

#include<stdio.h>
int main()
{
struct line
{
int x1,x2;
}
X[10005];
struct line Y;
int K;
while(scanf(“%d”,&K)&&K)
{
int i,j;
for(i=1;i<=K;i++)
{
scanf(“%d %d”,&X[i].x1,&X[i].x2);
}
for(i=1;i<K;i++)
{
int k=i;
for(j=i+1;j<=K;j++)
{
if(X[j].x1<X[k].x1)
k=j;
}
if(k!=i)
{
Y=X[k];
X[k]=X[i];
X[i]=Y;
}
}
int low=X[1].x1,high=X[1].x2;
int len=X[1].x2-X[1].x1;
for(i=2;i<=K;i++)
{
if(X[i].x1>=high)
{
len+=X[i].x2-X[i].x1;
low=X[i].x1,high=X[i].x2;
continue;
}
else{
if(X[i].x2>high)
{
len+=X[i].x2-high;
high=X[i].x2;
}
}
}
printf(“%d\n”,len);
}
return 0;
}

Problem:1135

#include<stdio.h>
#include<math.h>
int main()
{
int n,k;
int a[5];
scanf(“%d”,&n);
while(n–){
int count=0;
for(k=0;k<5;k++){
scanf(“%d”,&a[k]);
count+=a[k];
}
printf(“%d\n”,count);
}
return 0;
}

Problem:1136

#include<stdio.h>
#include<math.h>
int main()
{
int k;
int n,total,avg,singer;
int a[11];
scanf(“%d”,&k);
while(k–){
int sum=0;
scanf(“%d %d %d”,&total,&avg,&singer);
for(n=0;n<total;n++)
scanf(“%d”,&a[n]);
for(n=0;n<total;n++){
sum+=a[n];
if(a[n]<singer){

    printf("No\n");
    break;
    }
}
if(n==total){
    if(total*avg<sum)
    printf("Yes\n");
    else printf("No\n");
}

}
return 0;
}

Problem:1137

#include<stdio.h>
int main()
{
int k;
int n,i,j;
char ch;
scanf(“%d”,&k);
while(k–){
getchar();
scanf(“%c”,&ch);
n=ch-65;
for(i=0;i<=n;i++){
for(j=0;j<=n;j++) {
printf(" “);
}
printf(”%c",65+i);
printf(“\n”);
for(j=0;j<n-i;j++){
printf(" “);
}
for(j=0;j<i*2+3;j++){
printf(”%c",65+i);
}
printf(“\n”);
}
}

}

Problem:1138

#include<stdio.h>
int gcd(int a,int b)
{
int h;
while(b){
h=a%b;
a=b;
b=h;
}
return a;

}
int main()
{
int k,n,m,i,j,c,p,q,f;
scanf(“%d”,&k);
while(k–){
scanf(“%d%d”,&n,&m);
if(nm) printf(“0\n”);
else if(m
0) printf(“1\n”);
else if(n!=m&&m==1) printf(“1\n”);
else{
i=n*(n-1)/2;
j=m*(m-1)/2;
c=i-j;
p=gcd(c,i);
f=c/p;
q=(i)/p;
printf(“%d/%d\n”,f,q);

    }
        
    
}
return 0;

}

Problem:1139

#include<stdio.h>
int main()
{
int k,x;
int flag,p,q,i;
scanf(“%d”,&k);
while(k–)
{
scanf(“%d”,&x);
flag=0;
for(p=2;pp<x;p++){
if(x%p==0){
i=x/p;
flag=1;
for(q=2;q
q<=i;q++){
if(i%q0){
flag=0;
break;
}
}
break;
}
}
if(flag
1) printf(“Yes\n”);
else printf(“No\n”);
}
return 0;
}

Problem:1140

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
scanf(“%d”,&n);
while(n–){
char str[33];
int i,j;
double k=0;
scanf(“%s”,&str);
i=strlen(str);
for(j=0;j<i;j++){
if(str[j]‘1’)
k=k+pow(3,i-j-1);
if(str[j]
‘-’)
k=k-pow(3,i-j-1);
}
printf(“%.0lf\n”,k);
}
}

Problem:1141

#include <stdio.h>
int main()
{
int N,n,t,j,i;
char s[33];
scanf(“%d”,&N);
while(N–)
{
scanf(“%d”,&n);
i=0;
do
{
t=n%3;
if(t0||t1)
{
s[i]=‘0’+t;
n=n/3;
}
else
{
s[i]=‘-’;
n=n/3+1;
}
i++;
}
while(n>0);
for(j=i-1;j>=0;j–)
printf(“%c”,s[j]);
printf(“\n”);
}
return 0;

}

Problem:1142

#include
using namespace std;
int main()
{
int n;
while((cin>>n)&&n!=0)
{
int i=1,k=2;
n*=2;
while(k!=1)
{
k=(k2)%(n+1);
i++;
if(k==n)
{
i
=2;
break;
}
}
cout<<i<<endl;
}
return 0;
}

Problem:1148

#include<stdio.h>
#include<math.h>
int main()
{
int n;
int a[101];
while(scanf(“%d”,&n)&&n!=0){
int i,j,k;
for(i=0;i<n;i++) {
scanf(“%d”,&a[i]);
}
for(j=n;j>0;j–){
for(i=0;i<j-1;i++){
a[i]=(a[i]+a[i+1])%2013;
}
}
printf(“%d\n”,a[0]);
}
}

Problem:1160

#include<stdio.h>
#include<string.h>
#define K 105
#define max 300005
int num[K][5]={0};
int a[K]={0},b[K]={0};
int pd[5]={0};
int ans[max][5]={0};
int n,k;
int judge()
{
for(int i=0;i<k;i++){
int aa=0,bb=0;
for(int j=0;j<4;j++){
for(int u=0;u<4;u++){
if(j==u&&num[i][u]==pd[j]) aa++;
if(j!=u&&num[i][u]==pd[j]) bb++;
}
}
if(aa!=a[i]||bb!=b[i]){
return 0;
}
}
return 1;
}
int main()
{
while (scanf(“%d”,&n)&&n!=0)
{
scanf(“%d”,&k);
for(int i=0;i<k;i++)
scanf(“%d%d%d%d%d%d”,&num[i][0],&num[i][1],&num[i][2],&num[i][3],&a[i],&b[i]);
int x=0;
for(int q=1;q<=n;q++)
{
for(int w=1;w<=n;w++)
{
if(q!=w)
{
for(int e=1;e<=n;e++)
{
if(q!=e&&w!=e)
{
for(int r=1;r<=n;r++)
{
if(q!=r&&w!=r&&e!=r)
{
pd[0]=q;
pd[1]=w;
pd[2]=e;
pd[3]=r;

                                if(judge()==1)
                                {
                                    ans[x][0]=q;
                                    ans[x][1]=w;
                                    ans[x][2]=e;
                                    ans[x][3]=r; 
                                    x++;
                                }
                                memset(pd,0,sizeof(pd));
                            }
                        }
                    }
                }
            }
        }
    } 
    for(int i=0;i<x;i++) printf("%d %d %d %d\n",ans[i][0],ans[i][1],ans[i][2],ans[i][3]);
    printf("%d\n",x);
    x=0;
}
return 0;

}

Problem:1178

#include <stdio.h>
#include <math.h>
int main(){
int K,x1,x2,y1,y2,x3,x4,y3,y4,a,b,c,d;
scanf(“%d”,&K);
while(K–){
scanf(“%d %d %d %d\n”,&x1,&y1,&x2,&y2);
scanf(“%d %d %d %d”,&x3,&y3,&x4,&y4);
//我这个方法和求两个圆的位置关系方法很相似
//(我把除二全去了啊)求出两个矩形中心的横坐标的间距 a
a=(x1+x2)-(x3+x4);
a=abs(a);
//求出两个矩形横坐标方向边长的和
b=abs(x1-x2)+abs(x3-x4);
// 求出两个矩形中心的纵坐标的间距
c=(y1+y2)-(y3+y4);//中心距离
c=abs©;
//求出两个矩形纵坐标方向边长的和
d=abs(y1-y2)+abs(y3-y4);//边长长度
//这种情况和圆的内切或内含类似
if(a<b&&c<d){
printf(“Yes\n”);

    }
    //↓和圆的外切或相离类似 
    else {
        printf("No\n");
    
    }
    
        
    }
    

return 0;

}

Problem:1186

#include<stdio.h>
#define maxn 10
int shuru[maxn][maxn],shuchu[maxn][maxn];
int vis[maxn];
int way[maxn];
int n,mind,cnt;

void dfs(int d,int k,int num){
if (numn){
int t=d+shuru[k][0];
if(t>mind)
return;
if(t
mind&&cnt<9){
cnt++;
for(int i=1;i<=n;i++)
shuchu[cnt][i]=way[i];
}
else if(t<mind){
cnt=0;
mind=t;
for (int i=1;i<=n;i++)
shuchu[cnt][i]=way[i];
}
return;
}
for (int i=1;i<=n;i++)
if (!vis[i]&&d+shuru[k][i]<mind){
vis[i]=1;
way[num+1]=i;
dfs(d+shuru[k][i],i,num+1);
vis[i]=0;
}
}

int main(){

 int k;
for(scanf("%d",&k);k>0;k--){
    scanf("%d",&n);
    for(int i=0;i<=n;i++)
        for(int j=0;j<=n;j++)
            scanf("%d",&shuru[i][j]);
    mind=999999999;
    dfs(0,0,0);
    printf("%d\n",mind);
    for (int i=0;i<=cnt;i++){
        for (int j=1;j<n;j++)
            printf("%d ",shuchu[i][j]);
        printf("%d\n",shuchu[i][n]);
    }
}
return 0;

}

Problem:1188

#include<stdio.h>
#define P 100000
void quick_sort(int s[], int l, int r)
{
if (l < r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while(i < j && s[j] >= x)
j–;
if(i < j)
s[i++] = s[j];
while(i < j && s[i] < x)
i++;
if(i < j)
s[j–] = s[i];
}
s[i] = x;
quick_sort(s, l, i - 1);
quick_sort(s, i + 1, r);
}
}
int main()
{
int M[P+10],n,m;
while(scanf(“%d %d”,&n,&m)!=EOF)
{
int i,j;
int N[P+10];
for(i=1;i<=n;i++)
{
scanf(“%d”,&N[i]);
}
quick_sort(N,n-n+1,n);
for(i=1;i<=m;i++)
{
scanf(“%d”,&M[i]);
}
int pos[P+1]={1,1,0};
for(i=1;i<n;i++)
{
if(N[i]==N[i+1])
{
pos[i+1]=pos[i];
}
else{
pos[i+1]=i+1;
}
}
pos[n+1]=n+1;
for(i=1;i<=m;i++)
{
int left=1,right=n,mid;
while(right-left>=0)
{
mid=(left+right)/2;
if(M[i]==N[mid])
{
printf(“%d\n”,pos[mid]);
break;
}
else if(M[i]>N[mid])
{
left=mid+1;
}
else if(M[i]<N[mid])
{
right=mid-1;
}
}
if(right-left<0)
{
printf(“%d\n”,pos[left]);
}
}
}
return 0;
}

Problem:1189

#include <stdio.h>
int main()
{
__int64 a,b,c,K,i,j;
scanf(“%I64d”,&K);
for(j=0;j<K;j++)
{
scanf(“%I64d %I64d %I64d”,&a,&b,&c);
if(c0)
{
if(b
0)
printf(“None\n”);
else if(a0)
printf(“0\n”);
else
printf(“None\n”);
}
if(c
1)
{
if(ab&&a!=0)
printf(“0\n”);
else if(a
b&&a0)
printf(“1\n”);
else
printf(“None\n”);
}
if(c>1)
{
if(a-bc<0)
{
printf(“None\n”);
continue;
}
if((a-b
c)%(c-1)!=0)
{
printf(“None\n”);
continue;
}
if(a
0&&b==0)
{
printf(“None\n”);
continue;
}
printf(“%I64d\n”,(a-b*c)/(c-1));
}
}

}

Problem:1211

#include<stdio.h>
#include<math.h>
int main()
{
int k;

scanf("%d",&k);
while(k--){
    int a,b,c;
    scanf("%d+%d=%d",&a,&b,&c);
    if(a+b==c)
    printf("Yes\n");
    else printf("No\n");
}
return 0;

}

Problem:1212

include <stdio.h>

int main ()
{
int a,b,c,n,d,f;
while(scanf(“%d”,&n)==1&&n)
{
if(n<=10)
{
for(d=0;d<n-1;d++)
{
printf(" “);
}
}
printf(“1”);
for(a=0;a<n;a++)
{
if(a>0)
{
for(f=n-1-a;f>0;f–)
{
printf(” “);
}
}
for(b=0;b<a;b++)
{
printf(”%d",b+1);
}
if(a>0)
{
printf(“+”);
}
for(c=a;c>0;c–)
{
printf(“%d”,c);
}
printf(“\n”);
}
}
}

Problem:1213

#include<stdio.h>
int gcd(int a,int b)
{
int h;
while(b){
h=a%b;
a=b;
b=h;
}
return a;
}
int main()
{
int k,n,m;
int a,b,i,j,c;
scanf(“%d”,&k);
while(k–){
scanf(“%d %d”,&n,&m);
if(n<3){
return 0;
}
else{

    if(n==m) printf("1\n");
    else if(m>=0&&m<3) printf("0\n");
    else if(n!=3&&m==3) printf("1/%d\n",(n*(n-1)*(n-2)/6));
    else if(m>3){
        a=m*(m-1)*(m-2);
        b=n*(n-1)*(n-2);
        c=gcd(a,b);
        i=a/c;
        j=b/c;
        printf("%d/%d\n",i,j);
        
    }
}
}

}

Problem:1214

include <stdio.h>

include <stdlib.h>

int s(int k)
{
int i,sum;
sum=1;
for (i=0;i<k;i++)
{
sum *= 10;
}
return sum;
}
int main()
{
int k,i,j;
int x,y,z;
int a,b,c;
scanf(“%d”,&k);
while (k–)
{
scanf(“%d+%d=%d”,&a,&b,&c);
x=a;
y=b;
z=c;
for (i=0; i<10; i++)
{
x = a * s(i);
if (x+yz) break;
}
x=a;
y=b;
z=c;
for (j=0; j<10; j++)
{
y = b * s(j);
if (x+y
z) break;
}
if (i<=j) printf(“%d\n”,i);
else printf(“%d\n”,-j);
}
return 0;
}

Problem:1215

#include<stdio.h>
int main()
{
int k,a,b,c,d;
scanf(“%d”,&k);
while(k–){
scanf(“%d %d”,&a,&b);
int i=0,j=1;

    while(a!=0||b!=0){
    c=a%10;    
    a/=10;
    d=b%10;
    b/=10;
    i=i+(c+d)%10*j;
    j=j*10;    
    }
    printf("%d\n",i);
}

}

Problem:1216

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

define I 1

define V 5

define X 10

define L 50

define C 100

define D 500

define M 1000

int main()
{
char str[50];
int temp[50];
int i,j,len,sum;
while(gets(str)){
sum=0;
len=strlen(str);
temp[len]=1;

    for(i=len-1;i>=0;i--){
        if(str[i]=='I')
        j=1;
        if(str[i]=='V')
        j=5;
        if(str[i]=='X')
        j=10;
        if(str[i]=='L')
        j=50;
        if(str[i]=='C')
        j=100;
        if(str[i]=='D')
        j=500;
        if(str[i]=='M')
        j=1000;
        temp[i]=j;
        if(j<temp[i+1])
        sum-=j;
        else 
        sum+=j;
    }
    printf("%d\n",sum);
}

}

Problem:1217

#include<stdio.h>
int main()
{
int str[13]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
char temp[13][3]={“I”,“IV”,“V”,“IX”,“X”,“XL”,“L”,“XC”,“C”,“CD”,“D”,“CM”,“M”};
int n,i;
while(scanf(“%d”,&n)1){
for(i=12;i>=0;i–){
while(n>=str[i]){
printf(“%s”,temp[i]);
n=n-str[i];
if(n
0)
break;
}
}
printf(“\n”);
}
}

Problem:1218

#include<stdio.h>
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int c,a,b;
scanf(“%d%d”,&a,&b);
c=a+b;
int r=1;
for(int i=2;i*i<=c;i++)
{

        if(c%i==0)
        {
            int cnt=1;
            while(c%i==0)
            {
                c/=i;
                cnt++;
            }
            r*=cnt;
            if(c==1)
            {
                break;
            }
        }
        
    }
    if(c!=1)
    {
        r*=2;
    }
    printf("%d\n",r);
}
return 0;

}

Problem:1223

#include<stdio.h>
int main()
{
int k,m;
int n,i,j;
scanf(“%d”,&k);
while(k–){
scanf(“%d”,&m);
if(m%20&&m%50) printf(“0\n”);
else {
n=1,i=m,j=0;
while(i–){
n=n%m;
j++;
if(n0) break;
else
n=n*10+1;
}
if(n
0) printf(“%d\n”,j);
else printf(“0\n”);

    }
}

}

Problem:1224

#include<stdio.h>
#include<string.h>

int main()
{
int T;
scanf(“%d”,&T);
while(T–)
{
int sum=1;
char s[1002];
int cnt[4]={0};
scanf(“%s”,s);
int l=strlen(s);
for(int i=0;i<l;i++)
{
if(s[i]‘L’) cnt[0]++;
if(s[i]
‘O’) cnt[1]+=cnt[0];
if(s[i]‘V’) cnt[2]+=cnt[1];
if(s[i]
‘E’) cnt[3]+=cnt[2];
}
printf(“%d\n”,cnt[3]%1000000007);
}
}

Problem:1231

#include <stdio.h>
#include <math.h>
int main()
{
int k;
scanf(“%d”,&k);
while (k–){
int x,y;
scanf(“%d”,&x);
if(x>=100){
y=200+(x-100)*2;
}
if(x<100){
y=200-(100-x)*3;
}
printf(“%d\n”,y);
}
return 0;
}

Problem:1232

#include<stdio.h>
int gcd(int n,int m)
{
int h;
while(m){
h=n%m;
n=m;
m=h;
}
return n;
}
int main()
{
int k;
int n,m,a,b,c;
scanf(“%d”,&k);
while(k–){
scanf(“%d %d”,&n,&m);
a=2nm;
b=(n+m)*(n+m-1);
if(n0||m0) printf(“0\n”);
else{
c=gcd(a,b);
if(c==b) printf(“%d\n”,a/c);
else printf(“%d/%d\n”,a/c,b/c);
}

 }
 return 0;

}

Problem:1233

#include <stdio.h>
using namespace std;
char str[54][54];
void temp(int a,int b,char c)
{
int i;
for(i=a;i<=b;i++)
{
str[a][i]=c;
str[b][i]=c;
str[i][a]=c;
str[i][b]=c;
}
}
int main(void)
{
int k;
int n,a,b;
scanf(“%d”,&k);
while(k–)
{
scanf(“%d”,&n);
for(a=1;a<=n;a++)
temp(a,n2-a,65+n-a);
n=n
2-1;
for(a=1;a<=n;a++)
{
for(b=1;b<=n;b++)
printf(“%c”,str[a][b]);
printf(“\n”);
}
}

}

Problem:1234

include <stdio.h>

include <string.h>

int main (void)
{
int k;
int flag,n;
char str[33];

scanf("%d",&k);
while(k--)
{
    flag=0;
    scanf("%s",&str);
    n=strlen(str);
    if(str[0]>=48&&str[0]<=57)
    printf("No\n");
    else
    {
        for(int i=0;i<n;i++)
        {
            if((str[i]>=48&&str[i]<=57)||(str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122)||str[i]==95) continue;
            else flag=1;
        }
            if(flag==0)
            {
                if(strcmp(str,"auto")==0||strcmp(str,"break")==0||strcmp(str,"case")==0||strcmp(str,"char")==0||strcmp(str,"const")==0||strcmp(str,"continue")==0||strcmp(str,"default")==0||strcmp(str,"do")==0||strcmp(str,"double")==0||strcmp(str,"else")==0||strcmp(str,"enum")==0||strcmp(str,"extern")==0||strcmp(str,"float")==0||strcmp(str,"for")==0||strcmp(str,"goto")==0||strcmp(str,"if")==0||strcmp(str,"int")==0||strcmp(str,"long")==0||strcmp(str,"register")==0||strcmp(str,"return")==0||strcmp(str,"short")==0||strcmp(str,"signed")==0||strcmp(str,"sizeof")==0||strcmp(str,"static")==0||strcmp(str,"struct")==0||strcmp(str,"switch")==0||strcmp(str,"typedef")==0||strcmp(str,"union")==0||strcmp(str,"unsigned")==0||strcmp(str,"void")==0||strcmp(str,"volatile")==0||strcmp(str,"while")==0)
                printf("No\n");
                else
                printf("Yes\n");
            }
            else if(flag==1)
            printf("No\n");
    }
}
return 0;

}

Problem:1235

#include<stdio.h>
#include<string.h>
int main()
{
int k;
char str[11],th[11],ch[20];
int a,b,c;
scanf(“%d”,&k);
while(k–){
scanf(“%s %s”,str,th);
a=strlen(str);
b=strlen(th);
c=0;
for(a=0,b=strlen(th)-1;a<=strlen(th)-1,b>=0;a++,b–){
ch[c]=str[a];
printf(“%c”,ch[c]);
c++;
ch[c]=th[b];
printf(“%c”,ch[c]);
c++;
}
printf(“%c”,str[strlen(str)-1]);
printf(“\n”);

}

}

Problem:1236

#include<stdio.h>
const int max=30;
int str[max],temp[max];
int x;
void ch()
{
str[0]=1;
temp[0]=1;
str[1]=2;
temp[1]=2;
for(int i=2;i<max;++i){
str[i]=str[i-1]+str[i-2];
temp[i]=temp[i-1]*2;
}
}
int main()
{
ch();
int k;
scanf(“%d”,&k);
while(k–){
scanf(“%d”,&x);
int sum=0;
for(int i=max-1;x;–i){
if(x>=str[i]){
x=x-str[i];
sum=sum+temp[i];
}
}
printf(“%d\n”,sum);
}
}

Problem:1237

include <stdio.h>

int str[50000005];
int temp[5000002];
int main ()
{
int i,j;
int p=0;
str[1]=0;
for(i=2;i<=5e6;i++)
{
str[i]=1;
}
for(i=2;ii<=5e6;i++)
{
if(str[i])
{
for(j=2
i;j<=5e6;j=j+i)
{
str[j]=0;
}
}
}
for(i=2;i<=5e6-2;i++)
{
if(str[i]&&str[i+2])
p++;
temp[i+2]=p;
}
int K;
scanf(“%d”,&K);
while(K–)
{
int a,b;
scanf(“%d %d”,&a,&b);
printf(“%d\n”,temp[b]-temp[a+1]);
}
return 0;
}

Problem:1238

#include<stdio.h>
#include<math.h>
__int64 a[1111111];
__int64 b[1111111];
int main()
{
int i,j;
a[1]=2;
b[1]=2;
b[2]=3;
for(i=3;i<=1000000;i++){
b[i]=(b[i-1]+b[i-2])%1000000007;
}
for(j=2;j<=1000000;j++){
a[j]=(a[j-1]+a[j-1])%1000000007;
}
int k;
scanf(“%d”,&k);
while(k–){
int n;
__int64 c;
scanf(“%d”,&n);
c=(a[n]-b[n]+1000000007)%1000000007;
printf(“%I64d\n”,c);
}
}

Problem:1244

#include<stdio.h>

#include<string.h>

int M(int a,int b)

{

if(a>b)

{

    return a;

}

else

{

    return b;

}

}

int main()

{

int k;

scanf("%d",&k);

while(k--)

{

    int str[10000]={0};

    int n,m;

    scanf("%d%d",&n,&m);

    int i,MAX=0,max=0,mid,sum=0,cnt=0;

    for(i=0;i<n;i++)

    {

        scanf("%d",&str[i]);

        MAX+=str[i];

        if(max<str[i])

        {

            max=str[i];

        }

    }

    while(MAX>=max)

    {

        cnt=1,sum=0;

        mid=(MAX+max+1)/2;

        //printf("%d----%d\n",max,MAX);

        //printf("mid***%d\n",mid);

        for(i=0;i<n;i++)

        {

            if(sum+str[i]>mid)

            {

                sum=str[i];

                cnt++;

            }

            else

            {

                sum=sum+str[i];

            }

            //printf("%d===\n",cnt);

        }

        if(cnt>m)

        {

            max=mid+1;

        }

        else

        {

            MAX=mid-1;

        }

    }

    printf("%d\n",MAX+1);

}

return 0;

}

Problem:1247

#include<stdio.h>
#include<math.h>
int P[1111][3333];
void f(void);
int main()
{
f();
int t,n,m;
scanf(“%d”,&t);
while(t–){
scanf(“%d %d”,&n,&m);
printf(“%d\n”,P[n][m]);
}
}
void f(void)
{
P[0][1]=1;
int i,j,k=1,a;
for(i=1;i<=1000;i++){
a=0;
for(j=1;j<=k;j++){
P[i][j]=(P[i-1][j]*i+a)%10;
a=(P[i-1][j]*i+a)/10;
}
while(a>0){
P[i][++k]=a%10;
a=a/10;
}
}
}

Problem:1251

#include
using namespace std;
typedef long long ll;
//计算数码和
ll sum(ll n) {
ll sum = n;
while(n) {
sum+=n%10;
n/=10;
}
return sum;
}
int main(int argc, char const **argv) {
int K;
ll n;
cin >> K;
while(K–) {
cin >> n;
bool flag = true;
for(int i = 1; i <= 81; i++) {
if(n-i > 0) {
if(sum(n-i) == n) {
flag = false;
break;
}
} else {
break;
}
}
if(flag) {
cout << “Yes” << endl;
} else {
cout << “No” << endl;
}
}
return 0;
}

Problem:1255

#include<stdio.h>
int main()
{
int K;
scanf(“%d”,&K);
while(K–){
int x,y;
int x1,y1;
scanf(“%d %d”,&x,&y);
if(x>y){
x1=x;
y1=y;
}
else{
x1=y;
y1=x;
}
int a=x1-y1,b=x1+y1;
int flag=0;
int result;
for(int i=a+1;i<b;i++){
if(x1x1+y1y1ii||x1x1-y1*y1i*i){
flag=1;
result=i;
break;
}
}
if(flag==1) printf(“%d\n”,result);
else printf(“None\n”);
}
return 0;
}

Problem:1255

#include<stdio.h>
int main()
{
int k,x,y;
scanf(“%d”,&k);
while(k–){
scanf(“%d %d”,&x,&y);
int m,n;
if(x>y){
m=x;
n=y;
}
else{
m=y;
n=x;
}
int a=m-n;
int b=m+n;
int c,flag=0;
for(c=a+1;c<b;c++){
if(mm+nncc||mm-n*nc*c){
flag=1;
break;
}
}
if(flag==1) printf(“%d\n”,c);
else printf(“None\n”);
}
}

Problem:1256

include

include

include<stdio.h>

using namespace std;
int min(int a,int b)
{
return a>b?b:a;
}
int main(void)
{
int k,num_x=0,num_t=0,num_u=0;
string in;
cin >> k;
getchar();
while(k–)
{
cin >> in;
for(int i=0;i<in.length();i++)
{
if(in[i]‘X’) num_x++;
else if(in[i]
‘T’) num_t++;
else if(in[i]==‘U’) num_u++;
}
int ans=min(num_x,min(num_t,num_u));
cout << ans<<endl;
num_x=0;
num_t=0;
num_u=0;
ans=0;
}
return 0;
}

Problem:1257

#include
double fact(int a){
if(a==0) return 1;
return a*fact(a-1);
}

int main(){
int k;
scanf(“%d”,&k);
while(k–){
int n,m,x,y;
double result=0;
scanf(“%d%d”,&n,&m);
x=(m+n)/2;
y=(n-m)/2;
if((x+y)==n)
{
result=fact(n)/(fact(x)*fact(y));

}
printf(“%.0lf\n”,result);
}
return 0;
}

Problem:1258

#include<stdio.h>
int biao[15][15]={0};
void R(int biao[15][15],int x,int y,int n)
{
int i,j,t;
while(y–)
{
t=biao[x][n];
for(i=n-1;i>=1;i–)
{
biao[x][i+1]=biao[x][i];
}
biao[x][1]=t;
}
}
void L(int biao[15][15],int x,int y,int n)
{

int i,j,t;
while(y--)
{
    t=biao[x][1];
for(i=2;i<=n;i++)
{
    biao[x][i-1]=biao[x][i];
}
biao[x][n]=t;
}

}
void U(int biao[15][15],int x,int y,int n)
{
int i,j,t;
while(y–)
{
t=biao[1][x];
for(i=2;i<=n;i++)
{
biao[i-1][x]=biao[i][x];
}
biao[n][x]=t;
}
}
void D(int biao[15][15],int x,int y,int n)
{
int i,j,t;
while(y–)
{
t=biao[n][x];
for(i=n-1;i>=1;i–)
{
biao[i+1][x]=biao[i][x];
}
biao[1][x]=t;
}
}
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int n,m;
scanf(“%d %d”,&n,&m);
int i,j,p,e;
p=1;
for(i=1;i<=n;i++)//依次按行输入1-n*n
{
for(j=1;j<=n;j++)
{
biao[i][j]=p;
p++;
}
}

    while(m--)
    {
        char w;
        int x,y;
        getchar();
        scanf("%c %d %d",&w,&x,&y);
        if(w=='L')
        {
            L(biao,x,y,n);        
        }
        else if(w=='R')
        {
            R(biao,x,y,n);
        }
        else if(w=='D')
        {
            D(biao,x,y,n);
        }
        else if(w=='U')
        {
            U(biao,x,y,n);
        }
    }
    for(i=1;i<=n-1;i++)
            {
                for(j=1;j<=n;j++)
                {
                    printf("%d ",biao[i][j]);
                }
            }
            i=n;
            for(j=1;j<=n-1;j++)
            {
                printf("%d ",biao[i][j]);
             } 
             printf("%d\n",biao[n][n]);
     for(i=1;i<=n;i++)
 {
    for(j=1;j<=n;j++)
                 {
                     biao[i][j]=0;
                 }
             }
}

}

Problem:1259

#include<stdio.h>
long long xpow(int n)
{
long long t=1;
for(int i=0;i<n;i++)
t=t*10;
return t;
}
int main()
{
int k;
scanf(“%d”,&k);
for(int i=0;i<k;i++){
int n,m;
scanf(“%d %d”,&n,&m);
if(n==1){
int t=9/m+1;
printf(“%d\n”,t);
}
else{
long long t=xpow(n)-1;
t=t/m;
long long q=xpow(n-1)-1;
q=q/m;
printf(“%I64d\n”,t-q);
}

}
return 0;

}

Problem:1260

#include<stdio.h>
#include<string.h>
int main()
{
char str[1010];
int a[27]={0};
char t;
int i,j,k;
while(scanf(“%s”,&str)!=EOF){
int sum=0;
k=strlen(str);
for(i=1,t=‘A’;i<=26;i++,t++){
for(j=0;j<k;j++){
if(str[j]==t||str[j]t+32){
a[i]=1;
break;
}
}
}
for(j=1;j<=26;j++){
sum=sum+a[j];
a[j]=0;
}
if(sum
26) printf(“Yes\n”);
else printf(“No\n”);

}



return 0;

}

Problem:1260 =

#include<stdio.h>
#include<string.h>
int main()
{
char str[1010];
int a[27]={0};
char t;
int i,j,k;
while(scanf(“%s”,&str)!=EOF){
int sum=0;
k=strlen(str);
for(i=1,t=‘A’;i<=26;i++,t++){
for(j=0;j<k;j++){
if(str[j]==t||str[j]t+32){
a[i]=1;
break;
}
}
}
for(j=1;j<=26;j++){
sum=sum+a[j];
a[j]=0;
}
if(sum
26) printf(“Yes\n”);
else printf(“No\n”);

}



return 0;

}

Problem:1264

#include<bits/stdc++.h>
typedef __int64 ll;
using namespace std;
#define maxn 10005
char s[maxn];
int pre[26],f[maxn];

int main() {
while(cin>>s){
for(int i=0;i<26;i++) pre[i]=-1;
int ans=1,lens=strlen(s);
int l=0;
pre[s[0]-‘a’]=0;
f[0]=1;
for(int i=1;i<lens;i++){
int ch=s[i]-‘a’;
if(pre[ch]==-1) f[i]=f[i-1]+1;
else{
if(l<=pre[ch]){
f[i]=i-pre[ch];
l=pre[ch]+1;
}
else{
f[i]=f[i-1]+1;
}
}
pre[s[i]-‘a’]=i;
ans=max(ans,f[i]);
}
string ss=s;
setanss;
for(int i=0;i<lens;i++){
if(f[i]==ans){
anss.insert(ss.substr(i-ans+1,ans));
}
}
cout<<ans<<‘\n’;
for(set::iterator it=anss.begin();it!=anss.end();it++){
cout<<*it<<‘\n’;
}
}
}

Problem:1267

#include<stdio.h>

int main()
{
int z[20][20];
int a,b,c,d,e,f,g,h,k,i,o,p,v;
char m[50];
while(scanf(“%s”,m)1){
if(m[0]
‘I’){
scanf(“%d%d”,&a,&b);
for(k=0;k<=a-1;k++){
for(i=0;i<=b-1;i++){
z[k][i]=k*b+i+1;
}
}
}
else if(m[0]‘S’){
if(m[1]
‘R’){
scanf(“%d%d”,&c,&d);
for(k=0;k<=b-1;k++){
v=z[c-1][k];
z[c-1][k]=z[d-1][k];
z[d-1][k]=v;
}
}
else{
scanf(“%d%d”,&c,&d);
for(i=0;i<=a-1;i++){
v=z[i][c±1];
z[i][c-1]=z[i][d-1];
z[i][d-1]=v;
}
}
}
else if(m[0]‘T’){
if(a>b){
o=a;
p=b;
}
else{
o=b;
p=a;
}
for(k=0;k<=o-1;k++){
for(i=k;i<=o-1;i++){
v=z[k][i];
z[k][i]=z[i][k];
z[i][k]=v;
}
}
g=a;
a=b;
b=g;
}
else if(m[0]
‘F’){
if(m[1]‘R’){
for(k=0;k<a-1-k;k++){
for(i=0;i<=b-1;i++){
v=z[k][i];
z[k][i]=z[a-1-k][i];
z[a-1-k][i]=v;
}
}
}
else{
for(i=0;i<b-1-i;i++){
for(k=0;k<=a-1;k++){
v=z[k][i];
z[k][i]=z[k][b-1-i];
z[k][b-1-i]=v;
}
}
}
}
else if(m[0]
‘P’){
for(k=0;k<=a-1;k++){
for(i=0;i<=b-1;i++){
printf(“%d”,z[k][i]);
if(i==b-1)break;
printf(" “);
}
printf(”\n");
}
printf(“\n”);
}

}

}

Problem:1269

#include<stdio.h>
__int64 str[1001]={0};
__int64 g[1001]={0};
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int i,n,m,mid;
__int64 x;
__int64 MAX=2000000000,LEAST=0;
scanf(“%d%d”,&n,&m);
for(i=1;i<=n;i++)
{
scanf(“%I64d”,&str[i]);
}
for(i=1;i<=n;i++)
{
scanf(“%I64d”,&g[i]);
}
while(MAX>=LEAST)
{
//printf(“–\n”);
__int64 sum=0;
mid=(MAX+LEAST+1)/2;
//printf(“%d=====%d\n”,LEAST,MAX);
//printf(“%d\n”,mid);
for(i=1;i<=n;i++)
{
x=g[i]-str[i]*mid;
//printf(“x==%I64d\n”,x);
if(x<0)
{
sum=sum+x;
}
}
//printf(“sum=%d\n”,sum);
if(m+sum>=0)
{
LEAST=mid+1;
}
else
{
MAX=mid-1;
}
}
printf(“%I64d\n”,MAX);
}
return 0;
}

Problem:1270

#include<stdio.h>
#define N 10000000
__int64 a[N];
int b[N];
int c[11]={1,0};
void f(void);
int main()
{
f();
int n;
while(scanf(“%d”,&n)!=EOF)
{
printf(“%I64d\n”,a[n]);
}
return 0;
}
void f(void)
{
int i,q;
for(i=1;i<10;i++)
{
c[i]=c[i-1]*2;
}
for(i=1;i<=10;i++)
{
a[i]=i-1;
b[i]=c[i-1];
}
int z=2,g=11;
while(a[z]<=987654321)
{
for(q=0;q<=9;q++)
{
if(((b[z]>>q)&1)==0)
{
a[g]=a[z]*10+q;
b[g++]=b[z]+c[q];
}
}
z++;
}
}

Problem:1271

#include <bits/stdc++.h>
using namespace std;
#define r(n) scanf(“%d”,&n)
int main()
{
setx,y;
int k;
r(k);
int a,b,n;
while(k–)
{
x.clear();y.clear();
r(a);r(b);r(n);
int s = a*b;
for(int i=0;i<n;i++)
{
r(a);r(b);
x.insert(a);
y.insert(b);
}
printf(“%d\n”,s - x.size()*y.size());
}
return 0;
}

Problem:1276

#include<stdio.h>
#include<math.h>
int main()
{
int t;

scanf("%d",&t);
while(t--){
    float n,m;
    float x;
    scanf("%f %f",&n,&m);
    if(n<m){
        x=(m-n)/2.0;
        printf("Alice %g\n",x);
    }
    else if(n>m){
        x=(n-m)/2;
        printf("Bob %g\n",x);
    }
    else if(n==m)
    printf("None\n");
}
return 0;

}

Problem:1277

#include<stdio.h>
int main()
{
char a,b;
while(scanf(“%c”,&a)!=EOF)
{
int i,j,n;
n=a-‘A’+1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf(" “);
}
for(j=1;j<=n-i;j++)
{
printf(” “);
}
for(b=‘A’,j=1;j<=i;j++,b++)
{
printf(”%c",b);
}
for(b=b-2;b>=‘A’;b–)
{
printf(“%c”,b);
}
printf(“\n”);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" “);
}
for(b=‘A’,j=1;j<=i;j++,b++)
{
printf(”%c",b);
}
for(b=b-2;b>=‘A’;b–)
{
printf(“%c”,b);
}
for(j=1;j<=n-i+1;j++)
{
printf(" “);
}
for(j=1;j<=n-i;j++)
{
printf(” “);
}
for(b=‘A’,j=1;j<=i;j++,b++)
{
printf(”%c",b);
}
for(b=b-2;b>=‘A’;b–)
{
printf(“%c”,b);
}
printf(“\n”);
}
}
return 0;
}

Problem:1277

#include<stdio.h>
int main()
{
char a;
while(scanf(“%c”,&a)!=EOF){
getchar();
int n,i,j,k;
k=a-‘A’+1;
for(i=1;i<=k;i++){
for(j=0;j<2k-i;j++) printf(" “);
for(j=0;j<i;j++) printf(”%c",‘A’+j);
for(j=0;j<i-1;j++) printf(“%c”,‘A’+i-j-2);
printf(“\n”);
}
for(i=1;i<=k;i++){
for(j=0;j<k-i;j++) printf(" “);
for(j=0;j<i;j++) printf(”%c",‘A’+j);
for(j=0;j<i-1;j++) printf(“%c”,‘A’+i-j-2);
for(j=0;j<2
k-2*i+1;j++) printf(" “);
for(j=0;j<i;j++) printf(”%c",‘A’+j);
for(j=0;j<i-1;j++) printf(“%c”,‘A’+i-j-2);
printf(“\n”);
}
}
}

Problem:1278

include <stdio.h>

int main ()
{
int t,n,i,j;
int str[10001];
scanf(“%d”,&t);
while(t–)
{
scanf(“%d”,&n);
for(i=0;i<n;i++)
scanf(“%d”,&str[i]);
for(j=1;j<=n-2;j++)
{
if(str[j]-str[j-1]!=str[j+1]-str[j])
break;
}
if(j>n-2)
printf(“Yes\n”);
else
printf(“No\n”);
}
return 0;
}

Problem:1279

#include<stdio.h>
#include<math.h>
#define N 1000000
int P[N+1]={0,0},W[N+1]={0},D[N+1]={0};
void f(void);
int main()
{
f();
int k;
scanf(“%d”,&k);
while(k–)
{
int x,y;
scanf(“%d %d”,&x,&y);
printf(“%d\n”,D[y]-D[x-1]);
}
return 0;
}
void f(void)
{
int i,q,M;
M=sqrt(N);
for(i=2;i<=N;i++) P[i]=1;
for(i=2;i<=M;i++)
{
if(P[i]==1)
{
for(q=ii;q<=N;q+=i)
P[q]=0;
}
}
for(i=2;i<=N-2;i++)
{
for(q=i+1;q<=N/i;q++)
{
W[i
q]=P[i]*P[q];
}
}
for(i=2;i<=N;i++)
{
D[i]=D[i-1]+W[i];
}
}

Problem:1280

#include<stdio.h>
#define p 1000000007
int main()
{
__int64 sun;
int x;
char s[1010];
while(gets(s)!=NULL){
sun=1;
for(x=0;s[x]!=0;x++)
{
sun=sun*26+s[x]-‘a’;
sun%=p;
}
printf(“%I64d\n”,sun);
}
return 0;
}

Problem:1281

#include<stdio.h>
#include<string.h>
int main()
{
char str[222];
while(gets(str)){
int words=1;
int type=0;
int len=strlen(str);
char inspect[26]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’,‘l’,‘m’,‘n’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘w’,‘x’,‘y’,‘z’};
for(int i=0;i<len;i++){
if(str[i]==’ ‘)
words ++;
}
for(int i=0;i<len;i++){
if(str[i]>=‘A’&&str[i]<=‘Z’){
str[i]=str[i]+32;
}
for(int j=0;j<26;j++){
if((str[i]==inspect[j])&&(str[i]!=’ ')){
inspect[j]=‘0’;
type++;
}
}
}
if((type<=10)&&(words<=10)) printf(“Yes\n”);
else printf(“No\n”);
}
}

Problem:1282

#include <stdio.h>
__int64 gcd(__int64 a,__int64 b);
int main()
{
int t;
scanf(“%d”,&t);
while(t–)
{
int a,b;
scanf(“%d %d”,&a,&b);
int i;
__int64 x=1,y=a,z;
for(i=a+1;i<=b;i++)
{
x=xi+y;
y=y
i;
z=gcd(x,y);
x=x/z;
y=y/z;
}
if(x%y==0)
{
printf(“1\n”);
}
else
{
printf(“%I64d/%I64d\n”,x,y);
}

 } 
return 0;

}
__int64 gcd(__int64 a,__int64 b)
{
__int64 i;
while(b!=0){
i=a%b;
a=b;
b=i;
}
return a;
}

Problem:1283

#include<stdio.h>
unsigned __int64 h(int n)
{
int i;
unsigned __int64 sum=1;
for(i=1;i<=n/2;i++)
{
sum=sum*(n+1-i)/i;
}
return sum;
}
int main()
{
int a,i;
unsigned __int64 str[65]={1};
for(i=1;i<=64;i++)
{
str[i]=str[i-1]*2;
}
while(scanf(“%d”,&a)!=EOF)
{
if(a1)
{
printf(“1\n”);
}
else
{
if(a%2
0)
{
printf(“%I64u\n”,str[a-2]);
}
else
{
printf(“%I64u\n”,(str[a-1]-h(a-1))/2+h(a-1));
}
}

}
return 0;

}

Problem:1289

#include<bits/stdc++.h>
typedef __int64 ll;
using namespace std;
const int maxn = 5005;
const int P = 1e9+7;
char s[maxn];
int f[maxn][3];
int main(){
while(scanf(“%s”,s)!=EOF){
int lens=strlen(s);
f[lens][0]=f[lens][1]=f[lens][2]=0;
for(int i=lens-1;i>=0;i–){
int x=(s[i]-‘0’)%3;
if(x0){
f[i][0]=(f[i+1][0]+f[i+1][0]+1)%P;
f[i][1]=(f[i+1][1]+f[i+1][1])%P;
f[i][2]=(f[i+1][2]+f[i+1][2])%P;
}
else if(x
1){
f[i][0]=(f[i+1][0]+f[i+1][2])%P;
f[i][1]=(f[i+1][1]+f[i+1][0]+1)%P;
f[i][2]=(f[i+1][2]+f[i+1][1])%P;
}
else {
f[i][0]=(f[i+1][0]+f[i+1][1])%P;
f[i][1]=(f[i+1][1]+f[i+1][2])%P;
f[i][2]=(f[i+1][2]+f[i+1][0]+1)%P;
}
}
int ans=f[0][0];
for(int i=0;i<lens;i++){
if(s[i]==‘0’) ans=(ans-(f[i+1][0]+1))%P;
}
while(ans<0) ans+=P;
printf(“%d\n”,ans);
}
}

Problem:1290

#include <stdio.h>
#include <string.h>
int main()
{
int K;
scanf(“%d”,&K);
while(K–){
char a[11],b[11];
scanf(“%s”,&a);
scanf(“%s”,&b);
int p=strlen(a);
int q=strlen(b);
if(p4){
if(q
4) printf(“Draw\n”);
else if(q5) printf(“Bob\n”);
else if(q
8) printf(“Alice\n”);
}
else if(p5){
if(q
4) printf(“Alice\n”);
else if(q5) printf(“Draw\n”);
else if(q
8) printf(“Bob\n”);
}
else if(p8){
if(q
4) printf(“Bob\n”);
else if(q5) printf(“Alice\n”);
else if(q
8) printf(“Draw\n”);

    }        
}
return 0;

}

Problem:1291

include <stdio.h>

int main ()
{
int K;
scanf(“%d”,&K);
while(K–)
{
int n,m;
scanf(“%d%d”,&n,&m);
int str[n+1];
int i,j,a,b;
for(a=0;a<n;a++)
{
scanf(“%d”,&str[a]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(str[j]>str[j+1])
{
b=str[j];
str[j]=str[j+1];
str[j+1]=b;
}
}
}
int c,d,e=str[n-1]-str[n-m];
if(m==1)
printf(“0 %d\n”,str[0]);
else
{
for(i=n-1;i>=m-1;i–)
{
c=str[i]-str[i-m+1];
if(c<=e)
{
e=c;
d=i-m+1;
}
}
int f;
for(f=0,j=d;j<=d+m-1;j++)
{
f=f+str[j];
}
printf(“%d %d\n”,e,f);
}
}
return 0;
}

Problem:1292

#include<stdio.h>
#include<string.h>
int main()
{
int K,a,i,j,max,n;
int temp;
char str[1001],m;
scanf(“%d”,&K);
scanf(“%c”,&m);
while(K–)
{
gets(str);
a=strlen(str);
max=0;
for(n=1;n<=a/2;n++)
{
for(i=0;i<a;i++)
{
temp=0;
for(j=i;j<i+n;j++)
{
if(str[j]!=str[j+n])
{
temp=1;
break;
}
}
if(temp==0){
if(max<n)
{
max=n;
break;
}
}
}
}
printf(“%d\n”,2*max);
}
return 0;
}

Problem:1293

#include<stdio.h>
int main()
{
int k;
scanf(“%d”,&k);
while(k–){
int n,i,j,t,s=0;
char a[26],b[26];
char c[26]=" “;
scanf(”%d",&n);
for(i=0;i<26;i++){
a[i]=‘A’+i;
b[i]=‘Z’-i;
}
if(n==1){
printf(“A\n”);
s=1;
}
if(!s){
for(i=0;i<n;i++){
printf(“%s”,&c[26-n+i]);
for(j=0;j<=i;j++){
printf(“%c”,‘A’+n-1-j);
if(j+1>i){
int x=65+n-j;
while(x<=n+64){
printf(“%c”,x);
x++;
}
}
}
printf(“\n”);
}
for(i=n-2;i>=0;i–){
for(j=0;j<=n-i-2;j++){
printf(" “);
}
for(j=0;j<=i;j++){
printf(”%c",‘A’+n-1-j);
if(j+1>i){
int x=65+n-j;
while(x<=n+64){
printf(“%c”,x);
x++;
}
}
}
printf(“\n”);
}
}
}
return 0;
}

Problem:1293

#include<stdio.h>
int main()
{
int k,n;
scanf(“%d”,&k);
while(k–){
scanf(“%d”,&n);
int i,j,m,s;
char a;
a=n+‘A’-1;
for(i=1;i<=(2n-1)/2;i++){
for(j=0;j<n-i;j++) printf(" “);
for(j=0;j<i;j++) printf(”%c",a-j);
for(j=0;j<i-1;j++) printf(“%c”,‘A’+n+j-i+1);
printf(“\n”);
}
m=(2
n-1)/2;
s=2*n-1;
for(i=1;i<=s-m;i++){
for(j=0;j<i-1;j++) printf(" “);
for(j=0;j<n-i+1;j++) printf(”%c",a-j);
for(j=0;j<n-i;j++) printf(“%c”,‘A’+i+j);
printf(“\n”);
}
}
return 0;
}

Problem:1294

#include<stdio.h>
#include<string.h>
int main()
{
int k;
scanf(“%d”,&k);
char s[10001];
int n,i,j,a;
while(k–){
scanf(“%s”,s);
scanf(“%d”,&n);
while(n–){
int b=0;
scanf(“%d %d”,&i,&j);
for(a=i-1;a<j-1;a++){
if((s[a]‘M’&&s[a+1]‘F’)||(s[a]‘F’&&s[a+1]‘M’))
b++;
}
printf(“%d\n”,b);
}
}

}

Problem:1295

#include<stdio.h>
#include<stdbool.h>
ju(int n)
{
int i;
if(n1)
{
return 0;
}
if(n
2)
{
return 1;
}
for(i=2;i*i<=n;i++)
{
if(n%i0)
{
return 0;
}
}
return 1;
}
int main()
{
int i,j;
int k;
scanf(“%d”,&k);
while(k–)
{
int m,flag=1;
scanf(“%d”,&m);
int n,cnt=1,h;
for(n=m;n!=0;n=n/10)
{
//printf(“%d\n”,n);
//printf("
==%d\n",cnt);

        cnt=cnt*10;
        if(n%10==0)
        {
            flag=0;
        }
    }
    //printf("===%d\n",cnt);
    
    if(flag)
    {
        for(i=cnt;i>=10;i=i/10)
        {
            if(ju(m%i)==0)
            {
                flag=0;
                break;
            } 
        }
    }
    
    if(flag)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
}
return 0;

}

Problem:1296

#include<stdio.h>
int main()
{

int k;
scanf("%d",&k);
while(k--)
{
    int a,b;
    scanf("%d%d",&a,&b);
    int i;
    int c;
    int t;
    a=a-1;
    c=a-a/2-a/3+a/6;
    t=b-b/2-b/3+b/6;
    //printf("%d %d\n",c,t);
    printf("%d\n",t-c);
}
return 0;

}

Problem:1296

#include<stdio.h>
int main()
{

int k;
scanf("%d",&k);
while(k--)
{
    int a,b;
    scanf("%d%d",&a,&b);
    int i;
    int c;
    int t;
    a=a-1;
    c=a-a/2-a/3+a/6;
    t=b-b/2-b/3+b/6;
    //printf("%d %d\n",c,t);
    printf("%d\n",t-c);
}
return 0;

}

Problem:1297

#include<stdio.h>
#include<string.h>
#include<math.h>
//数组a存学号数组b存排名 通过下标将a,b捆绑
__int64 a[501];
int b[501];
int trans(int x); //给分函数
int swapp(int x,int y);//将学号和排名同时调换位置
int main()
{
memset(a,0,sizeof(a));//将数组清零
memset(b,0,sizeof(b));//在string头文件里
int n;//题目号
int rank;
int flag=1;
int i,j;
while(scanf(“%d %I64d %d”,&n,&a[flag],&rank)!=EOF)
{
for(i=0; i<flag; i++)
{
if(a[i]a[flag])
{
break;
}
}
//将排名转换成积分
b[i] += trans(rank);
if(i
flag)
flag++;
}

int num,judge=1;
num=flag-1;
while(judge)
{
    //冒泡将积分排序
    judge = 0;
    for(i=1;i<num;i++)
    {
        if(b[i]<b[i+1])
        {
            swapp(i,i+1);//同时调换学号和积分 
            judge = 1;
        }
    }
}
int k;
double q,w;
q = b[1];
//将积分转为分数
for(i=1;i<=num;i++)
{
    w = log(b[i]/q)*10+100.5;
    b[i] = w;
}

for(i=1;i<num;i++)
{
    //寻找积分相同的区间段
    k = i;
    while(b[i]==b[i+1])
    {
        i++;
    }
    
    judge = 1;
    while(judge)
    {
        //冒泡将学号排序
        judge = 0;
        for(j=k;j<i;j++)
        {
            if(a[j]>a[j+1])
            {
                swapp(j,j+1);
                judge = 1;
            }
        }
    }
}
for(i=1;i<=num;i++)
    printf("%I64d %d\n",a[i],b[i]);
return 0;

}

int trans(int x)
{
if(x>=1 && x<=12)
x = 32;
else if(x>=13 && x<=24)
x = 16;
else if(x>=25 && x<=48)
x = 8;
else if(x>=49 && x<=96)
x = 4;
else if(x>=97 && x<=192)
x = 2;
else if(x>=193)
x = 1;
return x;
}

int swapp(int x,int y)
{
int temp;
temp = a[x];
a[x] = a[y];
a[y] = temp;

temp = b[x];
b[x] = b[y];
b[y] = temp;

return 0;

}

Problem:1303

#include<stdio.h>
#include<string.h>
#define N 63
__int64 ans[N][N]={0};
__int64 num[N]={0},quan[N]={0};
void yu()
{
quan[0]=1;
for(int i=1;i<N;i++) quan[i]=quan[i-1]*2;
}
__int64 min(__int64 a,__int64 b)
{
return a<b?a:b;
}
__int64 dfs(int zuo,int you,int lunshu)
{
if(zuo>you) return 0;
if(ans[zuo][you]) return ans[zuo][you];
else return ans[zuo][you]=min(num[zuo]*quan[lunshu-1]+dfs(zuo+1,you,lunshu+1),num[you]*quan[lunshu-1]+dfs(zuo,you-1,lunshu+1));
}
int main()
{
yu();
int k;
scanf(“%d”,&k);
while(k–)
{
memset(ans,0,sizeof(ans));
int n;
scanf(“%d”,&n);
for(int i=0;i<n;i++)
{
scanf(“%I64d”,&num[i]);
}
printf(“%I64d\n”,dfs(0,n-1,1));
}
}

Problem:1303

#include<stdio.h>
#include<string.h>
#define N 63
__int64 ans[N][N]={0};
__int64 num[N]={0},quan[N]={0};
void yu()
{
quan[0]=1;
for(int i=1;i<N;i++) quan[i]=quan[i-1]*2;
}
__int64 min(__int64 a,__int64 b)
{
return a<b?a:b;
}
__int64 dfs(int zuo,int you,int lunshu)
{
if(zuo>you) return 0;
if(ans[zuo][you]) return ans[zuo][you];
else return ans[zuo][you]=min(num[zuo]*quan[lunshu-1]+dfs(zuo+1,you,lunshu+1),num[you]*quan[lunshu-1]+dfs(zuo,you-1,lunshu+1));
}
int main()
{
yu();
int k;
scanf(“%d”,&k);
while(k–)
{
memset(ans,0,sizeof(ans));
int n;
scanf(“%d”,&n);
for(int i=0;i<n;i++)
{
scanf(“%I64d”,&num[i]);
}
printf(“%I64d\n”,dfs(0,n-1,1));
}
}

Problem:1304

#include <bits/stdc++.h>
using namespace std;

int ans;
string s;
void doit(int id,char c)
{
string ss = s;
int cnt=2;
string now;
now = ss.substr(0,id-1);
now += ss.substr(id+1);
int flag=1;
while(flag)
{
flag=0;
for(int i=2;i<now.length();i++)
{
if(now[i-2]==now[i]&&now[i-1]==now[i])
{
int j=i;
while(now[j]==now[i]&&j<now.length())
{
j++;
}
flag=1;
cnt+=(j-i+2);
ss = now.substr(0,i-2);
ss += now.substr(j);
break;
}
}
now=ss;
}

ans = max(ans,cnt);

}

int main()
{
int t;
cin>>t;
int a[1010];
while(t–)
{
ans=0;
s.clear();
int n,c;
cin>>n>>c;
for(int i=1;i<=n;i++)
{
scanf(“%d”,a+i);
s+=(char)(a[i]+47);
}
char cc = (char)(c+47);
for(int i=1;i<s.length();i++)
{
if(s[i-1]==s[i]&&s[i]==cc)
doit(i,cc);
}
cout<<ans<<“\n”;
}
return 0;
}

Problem:1305

#include<stdio.h>
#define N 10001
__int64 str[N];
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int n;
scanf(“%d”,&n);
int i;
int sum=2,max=0;
for(i=1;i<=n;i++)
{
scanf(“%I64d”,str+i);
}
for(i=1;i<=n-2;i++)
{
if(str[i+2]==str[i]+str[i+1])
{
sum++;
//printf(“sss%d\n”,sum);
//printf(“%d\n”,i);
}
else
{
sum=2;
}
if(sum>max)
{
max=sum;
}
}
printf(“%d\n”,max);
}
return 0;
}

Problem:1305

#include<stdio.h>
#define N 10001
__int64 str[N];
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int n;
scanf(“%d”,&n);
int i;
int sum=2,max=0;
for(i=1;i<=n;i++)
{
scanf(“%I64d”,str+i);
}
for(i=1;i<=n-2;i++)
{
if(str[i+2]==str[i]+str[i+1])
{
sum++;
//printf(“sss%d\n”,sum);
//printf(“%d\n”,i);
}
else
{
sum=2;
}
if(sum>max)
{
max=sum;
}
}
printf(“%d\n”,max);
}
return 0;
}

Problem:1326

#include<stdio.h>
int gcd(int a,int b){
int t;
if(a<b){
t=a;
a=b;
b=t;
}
while(t=a%b,t!=0){
a=b;
b=t;
}
return b;
}
int main()
{
char str[1001];
while(scanf(“%s”,str)!=EOF){
int cnt[200]={0},ch[40]={0};
int i,j,t,count=0,maxH,flag;
for(i=0;str[i]!=0;i++){
cnt[str[i]]++;
}
for(i=‘A’,j=0;i<=‘Z’;i++){
if(cnt[i]>0)
ch[j++]=cnt[i];
}
t=ch[0],count=j;
for(i=1;i<count;i++){
t=gcd(t,ch[i]);
}
for(i=0;i<count;i++){
ch[i]/=t;
}
maxH=ch[0];
for(i=1;i<count;i++){
if(maxH<ch[i]) maxH=ch[i];
}
char s[100][100]={0};
for(i=0;i<count;i++){
for(j=0;j<maxH;j++){
if(j<maxH-ch[i]) s[j][i]=32;
else s[j][i]=42;
}
}
for(j=0;j<maxH;j++){
for(i=count-1;i>=0;i–){
if(s[j][i]32) s[j][i]=0;
else break;
}
}
for(j=0;j<maxH;j++){
flag=0;
for(i=0;i<count;i++){
if(s[j][i]!=0) printf(“%c”,s[j][i]);
else {
flag=1;
printf(“\n”);
break;
}
}
if(flag
0) printf(“\n”);
}
for(i=‘A’;i<=‘Z’;i++){
if(cnt[i]>0) printf(“%c”,i);
}
printf(“\n\n”);
}
return 0;
}

Problem:1327

#include<stdio.h>
#include<math.h>
int main()
{
char str[60][60];
char n;
int i,j,h,a;
while(scanf(“%c”,&n),n!=‘#’){
h=(n-‘A’)*2+1;
a=(h+1)/2;
for(i=0;i<=a;i++){
for(j=0;j<=a;j++){
if(j<=i) str[i][j]=‘A’+i;
else str[i][j]=str[i][j-1]+1;
}
}
for(i=0;i<h;i++) str[a][i]=n;
for(j=0;j<h;j++) str[j][(h+1)/2]=n;
for(i=0;i<=a;i++){
for(j=0;j<=a;j++){
str[h-1-i][j]=str[i][j];
str[i][h-1-j]=str[i][j];
str[h-1-i][h-1-j]=str[i][j];
}
}
for(i=0;i<h;i++){
for(j=0;j<h;j++){
printf(“%c”,str[i][j]);
}
printf(“\n”);
}
}
return 0;
}

Problem:1333

#include<stdio.h>
int main()
{
int t,n;
int a,b,c;
scanf(“%d”,&t);
while(t–){
scanf(“%d %d %d”,&a,&b,&c);
if(a>=c)
printf(“0\n”);
else if((c-a)%b==0){
n=(c-a)/b;
printf(“%d\n”,n);
}
else if((c-a)%b!=0){
n=(c-a)/b+1;
printf(“%d\n”,n);
}
}
return 0;
}

Problem:1334

#include<stdio.h>
__int64 GCD(__int64 a,__int64 b);
int main()
{
int q;
scanf(“%d”,&q);
while(q–)
{
int n;
scanf(“%d”,&n);
__int64 A[60]={0},B[2000]={0},C[35000]={0};
int i,w;
for(i=1;i<=n;i++){
scanf(“%I64d”,&A[i]);
}
int l=1,o,p=1;
for(i=1;i<=n-1;i++){
for(w=i+1;w<=n;w++){
B[l]=A[i]*A[w]/GCD(A[i],A[w]);
l++;
for(o=w+1;o<=n;o++){
C[p]=B[l-1]*A[o]/GCD(B[l-1],A[o]);
p++;
}
}
}
int m=p-1;
long long min=C[1];
for(i=2;i<=m;i++){
if(C[i]<min) min=C[i];
}
printf(“%I64d\n”,min);
}
}
__int64 GCD(__int64 a,__int64 b)
{
long long t;
if(a<b){
t=a;a=b;b=t;
}
while(t=a%b,t!=0){
a=b;
b=t;
}
return b;
}

Problem:1335

#include<stdio.h>
int main()
{
int w,x,y,r,z;
scanf(“%d”,&w);
while(w–)
{
z=0;
scanf(“%d”,&r);
for(x=1;x<=r;x++)
{
for(y=1;y<=r;y++)
{
if(xx+yy==r*r)
z+=4;
}
}
printf(“%d\n”,z+4);
}
}

Problem:1336

#include<stdio.h>
int s(int a,int b)
{
if(a>b)
{
return b;
}
else
{
return a;
}
}
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int p,n,i,j,cnt=0,min=9999999;
scanf(“%d”,&n);
int b=n;
int c=n;
if(n%11==0)
{
int i,j,cnt=0,min=9999999;
if(n>=1111)
{
for(i=0,c=n;i<=n/1111;i++)
{
c=n;
cnt=i;
c=c-i*1111;
cnt=cnt+c/1001;
c=c%1001;
cnt=cnt+c/11;
if(cnt<min)
{
min=cnt;
}
}
printf(“%d\n”,min);
}
else
{
cnt=n/1001;
n=n%1001;
cnt=cnt+n/11;
printf(“%d\n”,cnt);
}

    }
    else
    {
        //printf("vvvv\n");
        printf("0\n");
    }
}
return 0;

}

Problem:1337

#include<stdio.h>
#include<string.h>
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int flag1=0,flag2=0;
char str[500]={0},s[200]={0};
scanf(" %s%s",str,s);
int m,n,i,j,x;
m=strlen(str);
for(i=0;i<301;i++)
{
str[i+m]=str[i];
}
// printf(“===”);
//for(i=0;i<200;i++)
//{
// printf(“%c”,str[i]);
//}
//printf(“\n”);
n=strlen(s);
for(i=300;i>n+2;i–)
{
flag1=0;
for(j=i,x=0;x<n;j–,x++)
{
if(str[j]==s[x])
{
flag1++;

            }
            else
            {
                break;
            }
        }
        if(flag1==n)
            {
            //    printf("..%d..\n",i);
                break;
            }
    }
    for(i=0;i<250-n-1;i++)
    {
        flag2=0;
        for(j=i,x=0;x<n;j++,x++)
        {
            if(str[j]==s[x])
            {
                flag2++;
                
            }
            else
            {
                break;
            }
        }
        if(flag2==n)
            {
                //printf("----%d---\n",i);
                break;
            }
    }
    //printf("%d****%d\n",flag1,flag2);
    if(flag1==n||flag2==n)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
}
return 0;

}

Problem:1338

#include<stdio.h>
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int a;
scanf(“%d”,&a);
a=(a-2)/2;
int i,j;
for(i=1;i<=2a+1;i++)
{
printf(“-”);
}
printf(“\n”);
printf(“\”);
for(i=1;i<=2
a-1;i++)
{
printf(" “);
}
printf(”/“);
printf(”\n");
for(i=2;i<=a;i++)
{
for(j=1;j<i;j++)
{
printf(" “);
}
printf(”\“);
for(j=1;j<=2*(a-i)+1;j++)
{
printf(”*“);
}
printf(”/“);
printf(”\n");
}

    ///
    for(i=i-1;i>=1;i--)
    {
        for(j=1;j<i;j++)
        {
            printf(" ");
        }
        printf("/");
        for(j=1;j<=a-i;j++)
        {
            printf(" ");
        }
        printf("*");
        for(j=1;j<=a-i;j++)
        {
            printf(" ");
        }
        printf("\\");
        printf("\n");
    }
    for(i=1;i<=2*a+1;i++)
    {
        printf("-");
    }
    
    printf("\n\n");
}
return 0;

}

Problem:1338

#include<stdio.h>
int main()
{
int k;
scanf(“%d”,&k);
while(k–)
{
int a;
scanf(“%d”,&a);
a=(a-2)/2;
int i,j;
for(i=1;i<=2a+1;i++)
{
printf(“-”);
}
printf(“\n”);
printf(“\”);
for(i=1;i<=2
a-1;i++)
{
printf(" “);
}
printf(”/“);
printf(”\n");
for(i=2;i<=a;i++)
{
for(j=1;j<i;j++)
{
printf(" “);
}
printf(”\“);
for(j=1;j<=2*(a-i)+1;j++)
{
printf(”*“);
}
printf(”/“);
printf(”\n");
}

    ///
    for(i=i-1;i>=1;i--)
    {
        for(j=1;j<i;j++)
        {
            printf(" ");
        }
        printf("/");
        for(j=1;j<=a-i;j++)
        {
            printf(" ");
        }
        printf("*");
        for(j=1;j<=a-i;j++)
        {
            printf(" ");
        }
        printf("\\");
        printf("\n");
    }
    for(i=1;i<=2*a+1;i++)
    {
        printf("-");
    }
    
    printf("\n\n");
}
return 0;

}

Problem:1339

#include<stdio.h>
#include<stdbool.h>
#define N 2000000
bool str[N]={true,true};
bool s[N]={false};
int g[N]={0};
int main()
{
int i,j;
for(i=2;ii<N;i++)
{
if(!str[i])
{
for(j=i
i;j<N;j=j+i)
{
str[j]=true;
}
}
}
for(i=3;i<N-1;i++)
{
if(!str[i])
{
for(j=i+1;j+i<N;j++)
{
if(!str[j])
{
s[(i+j)/2]=true;
break;
}
}
}
}
for(i=1;i<N;i++)
{
g[i]=g[i-1]+s[i];
//printf(“===%d\n”,g[i]);
// printf(“****%d\n”,s[i]);
}
int k;
scanf(“%d”,&k);
while(k–)
{
int a,b;
scanf(“%d %d”,&a,&b);
printf(“%d\n”,g[b]-g[a-1]);
}
return 0;
}

Problem:1340

#include<stdio.h>
int main()
{
int i,j;
__int64 str[43][43];
for(i=0;i<43;i++)
{
str[i][0]=1;
}
for(i=0;i<43;i++)
{
for(j=1;j<=i;j++)
{
str[i][j]=str[i][j-1]*(i+1-j)/j;
//printf("%I64d ",str[i][j]);
}

}
int k;
scanf("%d",&k);
while(k--)
{
    int a;
    __int64 sum=1;
    scanf("%d",&a);
    if(a%2==0)
    {
        for(i=0;i<a;i=i+2)
        {
            sum=sum+str[a][i]*str[a-i][(a-i)/2];
            //printf("===%d\n",sum);
        }
    }
    else
    {
        for(i=1;i<a;i=i+2)
        {
            sum=sum+str[a][i]*str[a-i][(a-i)/2];
        }
    }
    printf("%I64d\n",sum);
}
return 0;

}

Problem:1342

#include<stdio.h>
int main()
{
int n,i;
int a1,b1,c1,a2,b2,c2;
scanf(“%d”,&n);
while(n–){
scanf(“%d %d %d”,&a1,&b1,&c1);
scanf(“%d %d %d”,&a2,&b2,&c2);
if(a1>b1){
i=a1;
a1=b1;
b1=i;
}
if(a1>c1){
i=a1;
a1=c1;
c1=i;
}
if(b1>c1){
i=b1;
b1=c1;
c1=i;
}
if(a2>b2){
i=a2;
a2=b2;
b2=i;
}
if(a2>c2){
i=a2;
a2=c2;
c2=i;
}
if(b2>c2){
i=b2;
b2=c2;
c2=i;
}
if(a1b2==a2b1&&a1c2==a2c1&&b1c2==b2c1)
printf(“Yes\n”);
else printf(“No\n”);
}

}

Problem:1342

#include<stdio.h>
int main()
{
int t;
int a1,b1,c1,a2,b2,c2;
scanf(“%d”,&t);
while(t–){
scanf(“%d %d %d”,&a1,&b1,&c1);
scanf(“%d %d %d”,&a2,&b2,&c2);
int i;
if(a1>b1){
i=a1;
a1=b1;
b1=i;
}
if(a1>c1){
i=a1;
a1=c1;
c1=i;
}
if(b1>c1){
i=b1;
b1=c1;
c1=i;
}
if(a2>b2){
i=a2;
a2=b2;
b2=i;
}
if(a2>c2){
i=a2;
a2=c2;
c2=i;
}
if(b2>c2){
i=b2;
b2=c2;
c2=i;
}
if(a1b2==a2b1&&a1c2==a2c1&&b1c2==b2c1)
printf(“Yes\n”);
else printf(“No\n”);
}
return 0;
}

Problem:1344

#include<stdio.h>
#include<string.h>
#define N 1001
int main()
{
char str[N];
while(scanf(“%s”,str)!=EOF)
{
int i,sum=1,max=1,m;
m=strlen(str);
for(i=0;i<m-1;i++)
{
if(str[i]==str[i+1]-1)
{
sum++;
}
else
{
sum=1;
}
if(sum>max)
{
max=sum;
}
}
printf(“%d\n”,max);
}
return 0;
}

Problem:1344

#include<stdio.h>
#include<string.h>
#define N 1001
int main()
{
char str[N];
while(scanf(“%s”,str)!=EOF)
{
int i,sum=1,max=1,m;
m=strlen(str);
for(i=0;i<m-1;i++)
{
if(str[i]==str[i+1]-1)
{
sum++;
}
else
{
sum=1;
}
if(sum>max)
{
max=sum;
}
}
printf(“%d\n”,max);
}
return 0;
}

Problem:1347

#include<stdio.h>
#include<string.h>
int main()
{
char s[33]={‘0’};
int y[33],flag,t,a,p,l,j,i,k;
char tmp;
scanf(“%d”,&t);
while(t–)
{
for( i=0;i<=32;i++) y[i]=1;
scanf(“%s”,s);
int n;
scanf(“%d”,&n);
for( i=1;i<=n;i++)
{
scanf(“%d”,&a);
a=a-1;
tmp=s[a];
s[a]=s[a+1];
s[a+1]=tmp;
l=strlen(s);
if(s[a]s[a+1])
{
for( j=a;j>=1;j–)
{
if(s[j]!=s[j-1]) break;
}
flag=j;
for(j=a+1;j<=l-2;j++)
{
if(s[j]!=s[j+1]) break;
}
if(j-flag>=2)
{
for(k=flag;k<=j;k++) y[k]=0;
}
}
else{
for(j=a;j>=1;j–)
{
if(s[j]!=s[j-1]) break;
}
if(a-j>=2)
{
for(k=j;k<=a;k++) y[k]=0;
}
for(j=a+1;j<=l-2;j++)
{
if(s[j]!=s[j+1]) break;
}
if(j-a-1>=2)
{
for(k=a+1;k<=j;k++) y[k]=0;
}
}
p=0;
for(j=0;j<l;j++)
{
if(y[j])
{
s[p]=s[j];
p++;
}
}
s[p]=‘\0’;
if(p
0) printf(“Over\n”);
else{
for(j=0;j<p;j++) y[j]=1;
printf(“%s\n”,s);
}
}
printf(“\n”);
}
}

Problem:1349

#include<stdio.h>
int main()
{
printf(“BDACD\n”);
return 0;
}

Problem:1350

#include<stdio.h>
#include<math.h>
int main()
{
int t;
double x,y,z;
scanf (“%d”,&t);
while(t–){
scanf(“%lf”,&x);
y=sqrt(1-xx);
z=(2
y)/2;
printf(“%.3f\n”,z);
}
return 0;
}

Problem:1351

#include<stdio.h>
#include<string.h>
int main()
{
char s[1001];
while(gets(s)!=NULL)
{
int i,q,n,cnt[300]={0},flag=1;
n=strlen(s);
for(i=0;s[i]!=0;i++)
{
cnt[s[i]]++;
}
if(n%20){
for(i=‘a’;i<=‘z’;i++)
{
if(cnt[i]%2!=0)
{
flag=0;
printf(“No\n”);
break;
}
}
if(flag
1) printf(“Yes\n”);
}
else{
int nub=0;
for(i=‘a’;i<=‘z’;i++)
{
if(cnt[i]%2!=0)
{
nub++;
}
}
if(nub>=2) printf(“No\n”);
else printf(“Yes\n”);
}
}
return 0;
}

Problem:1352

#include<stdio.h>
__int64 GCD(__int64 x,__int64 y);
int main()
{
int K;
scanf(“%d”,&K);
while(K–)
{
__int64 a,b,k;
__int64 s[1000]={0};
scanf(“%I64d %I64d”,&a,&b);
int i=0,j=0;
while( a > 0 )
{
s[j] = b%a == 0 ? b/a : b/a+1;
a = a * s[j] - b;
b = b * s[j];
k = GCD(a,b);
a = a/k;
b = b/k;
j++;
}
for(i=0;i<j-1;i++){
printf(“%I64d “,s[i]);
}
printf(”%I64d\n”,s[j-1]);
}
return 0;
}
__int64 GCD(__int64 x,__int64 y)
{
int t;
if(x<y){
t=x;x=y;y=t;
}
if(y==0) y=1;
while(t=x%y,t!=0){
x=y;
y=t;
}
return y;
}

Problem:1353

#include<stdio.h>
#include<string.h>
int main()
{
int n;//十进制整数值
char s[32];//数码串数组
while(scanf(“%s %d”,s,&n)!=EOF) {
int Z[32];// 数码串转数值每位数码数组
int i,j,l=0,k;//数码串长度 ,k进制
__int64 m;//转化后的十进制值
l=strlen(s);
for(i=0;i<l;i++){
if(s[i]>=‘0’&&s[i]<=‘9’) Z[i]=(int)(s[i]-48);
else if(s[i]>=‘A’&&s[i]<=‘F’) Z[i]=(int)(s[i]-55);
}
for(k=2;k<=16;){
m=0;
for(j=0;j<l;j++){
if(Z[j]>=k) goto tiao;
}
for(i=0;i<l;i++){
m=(m+Z[i])*k;
}
m=m/k;
if(mn){
printf(“%d\n”,k);
break;
}
tiao:k++;
}
if(k
17) printf(“Impossible\n”);
getchar();
}
return 0;
}

Problem:1354

#include<stdio.h>
#include<string.h>
#define P 1000000007
int main()
{
__int64 A[110][110];//A[n][m]表示到(n,m)有多少种相当于x-y轴
int i,j;
A[0][0]=1;
for(i=1;i<=100;i++){//初始化x,y轴
A[0][i]=A[i][0]=1;
}
for(i=1;i<=100;i++){
for(j=1;j<=100;j++){
A[i][j]=(A[i][j-1]+A[i-1][j]+A[i-1][j-1])%P;//递推
}
}
int T;
scanf(“%d”,&T);
while(T–){
int n,m;
scanf(“%d %d”,&n,&m);
printf(“%I64d\n”,A[n][m]);
}
return 0;
}

Problem:1355

#include<stdio.h>
#define P 3000000
__int64 g[P+1];//g[]存个数
int prime[P+1]={1,1},su[P+1]={0};//素数标记 存素数
int main()
{
int i,j,cnt=0;
for(i=2;ii<=P;i++){
if(!prime[i]){
su[cnt++]=i;
for(j=i
i;j<=P;j=j+i) prime[j]=1;
}
}//素数表 素数标为0 合数标为1
for(i=1;i<=P;i++){
if(!prime[i]) g[i]=i-1;
else{
g[i]=i;
int n=i;
for(j=0;j<cnt;j++){//su[j]为质因子
if(n%su[j]==0) g[i]=(g[i](su[j]-1))/su[j];
while(n%su[j]==0) n/=su[j];
if(!prime[n]){
g[i]=(g[i]
(n-1))/n;
break;
}
}
}
g[i]=g[i]+g[i-1];
}
int T;
scanf(“%d”,&T);
while(T–){
int a,b;
scanf(“%d %d”,&a,&b);
printf(“%I64d\n”,g[b]-g[a-1]);
}
return 0;
}

Problem:1356

#include<stdio.h>
int main()
{
int h[5]={0,-1,0,1,0},l[5]={0,0,1,0,-1},
pos1=0,pos2=0;
int T;
scanf(“%d”,&T);
while(T–){
char s[110][110]={0};
int D[110][110]={0};
int n,m,d,i,j;
scanf(“%d %d %d”,&n,&m,&d);
for(i=1;i<=n;i++)
{
getchar();
for(j=1;j<=m;j++)
{
scanf(“%c”,&s[i][j]);
}
}
int flag=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(s[i][j]‘S’)
{
pos1=i;
pos2=j;
flag=1;
break;
}
}
if(flag
1) break;
}
int cnt=0;
while(s[pos1][pos2]!=‘‘)
{
D[pos1][pos2]+=1;
if(D[pos1][pos2]>4)
{
printf(“Impossible\n”);
break;
}
if(s[pos1+h[d]][pos2+l[d]]‘.’||s[pos1+h[d]][pos2+l[d]]‘S’)
{
pos1=pos1+h[d];
pos2=pos2+l[d];
cnt++;
continue;
}
else if(s[pos1+h[d]][pos2+l[d]]0
||s[pos1+h[d]][pos2+l[d]]
’)
{
d=d+1;
if(d5) d=1;
continue;
}
else if(s[pos1+h[d]][pos2+l[d]]
‘E’)
{
printf(“%d\n”,cnt+1);
break;
}
}
}
return 0;
}

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SJTU OJ是上海交通大学在线评测系统的简称。它是一个提供给学生练习编程和解决问题的平台。 首先,学生需要注册并登录SJTO OJ系统。系统会为每个注册用户分配一个唯一的用户ID和密码,以保证账户安全。 上机编程练习是SJTO OJ的主要功能之一。学生可以在系统中选择不同的编程题目,例如算法题、数据结构题、数学题等等。每道题目都附带了详细的题目描述和输入输出样例。学生需要根据题目要求,编写相应的程序,并在系统中提交代码。系统会自动编译和运行学生提交的代码,并对其进行评测。评测结果包括通过样例的数量、程序运行时间、内存占用等信息。 除了上机编程练习,SJTO OJ还提供了一些其他功能。例如,学生可以查看自己的解题记录和成绩,统计自己的编程能力和进步情况。他们可以参加在线比赛,与其他学生一同竞争,提高自己的编程水平。 作为一名学生,使用SJTO OJ可以有效地提升自己的编程技能和解决问题的能力。通过参与编程练习和比赛,学生可以不断学习新知识,发现并改进自己的不足之处。此外,SJTO OJ还为学生提供了一个交流的平台,他们可以与其他学生分享自己的解题思路和经验。 总之,SJTO OJ是一个非常有用的在线评测系统,通过使用它,学生可以提高自己的编程能力,并享受与其他同学交流和竞争的乐趣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值