CSP历年第一题

202206-1

#include<stdio.h>
#include<math.h>
int main() {
	int n;
	int i;
	int sum = 0;
	int a[1000];
	double a_;
	double da = 0.0;
	double fa = 0.0;
	scanf("%d", &n);
	for ( i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
		sum = sum + a[i];
	}
	a_ = sum/(n*1.0);
	//printf("a_:%f\n", a_);
	for (i = 0; i < n; i++)
	{
		da = da + (a[i] - a_) * (a[i] - a_);
	}
	da = da/n;
	for (i = 0; i < n; i++)
	{
		fa = (a[i] - a_) / sqrt(da);
		printf("%lf\n", fa);
	}
	return 0;
}

202203-1

#include<stdio.h>
int main() {
	int n, k;
	int i;
	int x, y;
	int count = 0;
	scanf("%d %d", &n, &k);
	int a[100000] = { 0 };
	a[0] = 1;
	for (i = 0; i < k; i++) {
		scanf("%d %d", &x, &y);
		//printf("%d==%d\n", a[x], a[y]);
		if (a[y] == 0) { 
			count++;
			//printf("count=%d\n", count);
		}
		a[x] = 1;
	}
	printf("%d", count);
	return 0;
}

202112-1

#include<stdio.h>
int main() {
    int n,N;
    int a[201];
    int i,d,sum;
    sum=d=0;
    scanf("%d %d",&n,&N);
    a[0]=0;
    for ( i = 1; i <= n; i++)
    {
        scanf("%d",&a[i]);
    }
    for (i = 1; i <= n; i++)
    {

        if (a[i]<=N)
        {     
            sum=sum+(a[i]-a[i-1])*d;
         //   printf("%d*%d\n",(a[i]-a[i-1]),d);
            d++;
        }  
        else{
            break;
        } 
    }   
    sum=sum+(N-a[n])*d;
    printf("%d",sum);
    return 0;         
}

202109-1

#include<stdio.h>
int main() {
    int n,B,B1,i;
    B1=0;
    int max=0;
    int min=0;
    scanf("%d",&n);
    for (i = 0; i < n; i++)
    {
        scanf("%d",&B);
        max=max+B;
        if(B!=B1){
            B1=B;
            min=min+B1;
        }
    }
    printf("%d\n%d",max,min);
    return 0;         
}

202104-1

#include<stdio.h>
int main() {
    int n,m,L,i;
    int a[256]={0};
    scanf("%d %d %d",&n,&m,&L);
    n=n*m;
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&m);
        a[m]++;
    }
    for ( i = 0; i < L; i++)
    {
        printf("%d ",a[i]);
    }
        
    return 0;         
}

202012-1

#include<stdio.h>
int main() {
    int n,i;
    int s,w;
    int sum=0;
    scanf("%d",&n);
    for ( i = 0; i < n; i++)
    {
        scanf("%d %d",&s,&w);
        sum=sum+s*w;
    }
    if (sum>=0)
    {
        printf("%d",sum);
    }
    else{
        printf("%d",0);
    }
            
    return 0;         
}

202006-1

#include<stdio.h>
typedef struct POINT
{
    long x;
    long y;
    char type;
}Point;
//A>0或B<0返回1反之返回0;
int AB(long a,long b,long c,long x,long y,char type){
    if (type=='A')
    {
        if (a+b*x+c*y>0)
        {
            return 1;
        }else{
            return 0;
        }        
    }
    else{//type=='B'
        if (a+b*x+c*y<0)
        {
            return 1;
        }else{
            return 0;
        }        
    }
    
}
int main(){
    int n,m,i,j;
    scanf("%d %d",&n,&m);
    Point point[1024];
    long a[22][3];
    int d0,di,k;
    for ( i = 0; i < n; i++)
    {
        scanf("%d %d %c",&point[i].x,&point[i].y,&point[i].type);
    }
    for ( i = 0; i < m; i++)
    {
        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
    }
    for ( i = 0; i < m; i++)
    {
        k=1;
        d0=AB(a[i][0],a[i][1],a[i][2],point[0].x,point[0].y,point[0].type);
        for ( j = 1; j < n; j++)
        {
            di=AB(a[i][0],a[i][1],a[i][2],point[j].x,point[j].y,point[j].type);
            if (di!=d0)
            {
                printf("No\n");
                k=0;
                break;
            }
        }
        if (k==1)
        {
            printf("Yes\n");
        }
    }
    return 0;
}

202009-1

#include<stdio.h>
int main() {
    int n,i,j;
    int X,Y,x,y;
    int d[200];
    int a[3]={0,1,2};
   scanf("%d %d %d",&n,&X,&Y);
    for ( i = 0; i < n; i++)
    {
        scanf("%d %d",&x,&y);
        d[i]=(X-x)*(X-x)+(Y-y)*(Y-y);
    }
    for ( i = 0; i < n; i++)
    {
        if (d[i]<d[a[0]])
        {
            a[0]=i;
        }
    }
    for ( i = 0; i < n; i++)
    {
        if (i!=a[0])
            if (d[i]<d[a[1]])
                a[1]=i;
    }
    for ( i = 0; i < n; i++)
    {
        if (i!=a[0]&&i!=a[1])
        if (d[i]<d[a[2]])
        {
            a[2]=i;
        }
    }      
    printf("%d\n%d\n%d\n",a[0]+1,a[1]+1,a[2]+1);  
    return 0;         
}

201912-1

#include<stdio.h>
//含7或7的倍数返回1,否则返回0
int is7(int x){
    if (x%7==0)
    {
        return 1;
    }
    int a0=x/100;
    if (a0==7)
    {
        return 1;
    }
    int a1=(x-a0*100)/10;
    if (a1==7)
    {
        return 1;
    }
    int a2=(x-a0*100-a1*10);
    if (a2==7)
    {
        return 1;
    }  
    return 0;
}
int main(){
    int n,i,cot;
    i=cot=0;
    int a[4]={0};
    scanf("%d",&n);
    while (1)
    {
        i++;
        int is=is7(i);
       // printf("%d %d\n",i,is);
        if (is)
        {
            a[(i-1)%4]++;
        }
        else{
            cot++;
            if (cot==n)
            {
                break;
            }
            
        }
    }
    for ( i = 0; i < 4; i++)
    {
        printf("%d\n",a[i]);
    }    
    return 0;
}

201909-1

#include<stdio.h>
int main(){
    int a[1000];
    int N,M;
    int i,j;
    int T,T0,k,k0,ki;
    T=T0=k=k0=0;
    scanf("%d %d",&N,&M);
    for ( i = 0; i < N; i++)
    {
        k0=T0=0;
        scanf("%d",&T0);   
        for ( j = 0; j < M; j++)
        {
            scanf("%d",&a[j]);
            k0=k0+a[j];
        }
        T=T+T0+k0;
        if (k0<k)
        {
            k=k0;
            ki=i+1;
        }
        
    }
    printf("%d %d %d",T,ki,-k);
    return 0;
    
}

201903-1

#include<stdio.h>
int main(){
    int n,i;
    scanf("%d",&n);
    long a0,m0,m1,an;
    scanf("%d",&a0);
    for ( i = 1; i < n/2; i++)
    {
        scanf("%d",&m0);       
    }
    scanf("%d",&m1);
    for ( i=n/2+1; i < n; i++)
    {
        scanf("%d",&an);       
    }
    if (a0<an)
    {
        a0=a0+an;
        an=a0-an;
        a0=a0-an;
    }
    if(n%2==0){
        if((m0+m1)%2==0){
        printf("%d %d %d",a0,(m0+m1)/2,an);
        }else{
            printf("%d %.1f %d",a0,(m0+m1)/2+0.5,an);
        }
    }else{
        printf("%d %d %d",a0,m1,an);
    }
    return 0;
}

201812-1

#include<stdio.h>
int main(){
    int r,y,g;
    int n,i;
    int k,t,T;
    T=0;
    scanf("%d %d %d",&r,&y,&g);
    scanf("%d",&n);
    for ( i = 0; i < n; i++)
    {
        scanf("%d %d",&k,&t);
        switch (k)
        {
        case 0:
        T=T+t;
            break;
        case 1:
        T=T+t;
            break;
        case 2:
        T=T+t+r;
            break;
        default:
            break;
        }
    }
    printf("%d",T);
    return 0;
}

201809-1

#include<stdio.h>
int main(){
    int n,i;
    scanf("%d",&n);
    int a[10000],b[10000];
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&a[i]);
    }
    b[0]=(a[0]+a[1])/2;
    for ( i = 1; i < n-1; i++)
    {
        b[i]=(a[i-1]+a[i]+a[i+1])/3;
    }
    b[n-1]=(a[n-2]+a[n-1])/2;   
    for ( i = 0; i < n; i++)
    {
        printf("%d ",b[i]);
    }
    return 0;
}

201803-1

#include<stdio.h>
int main(){
    int a;//读入数据
    int sum=0;//记录总分
    int b=2;//额外加分
    while (1)
    {
        scanf("%d",&a);
        switch (a)
        {
        case 1:
            sum=sum+1;
            b=2;
            break;
        case 2:
            sum=sum+b;
            b=b+2;
            break;
        case 0:
            printf("%d",sum);
            return 0;
        default:
            break;
        }
    }
}

201712-1

#include<stdio.h>
#include<math.h>
int main(){
    int n,i,j;
    int a[1000];
    int min_d=10000;
    scanf("%d",&n);
    scanf("%d",&a[0]);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&a[i]);
        for ( j = 0; j < i; j++)
        {
            if (fabs(a[i]-a[j])<min_d)
            {
                min_d=fabs(a[i]-a[j]);
            }
        }
    }
    printf("%d",min_d);
    return 0;
}

201709-1

#include<stdio.h>
int main(){
    int N,n;
    int sum=0;
    scanf("%d",&N);
    n=N/10;
    switch (n%5)
    {
    case 0:sum=(n/5)*7;break;
    case 1:sum=(n/5)*7+1;break;
    case 2:sum=(n/5)*7+2;break;
    case 3:sum=(n/5)*7+4;break;
    case 4:sum=(n/5)*7+5;break;    
    default:
        break;
    }
    printf("%d",sum);
    return 0;
}

201703-1

#include<stdio.h>
int main(){
    int n,k,i,a;
    int ci=0,ct=0;
    scanf("%d %d",&n,&k);
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&a);
        ci=ci+a;
        if (ci>=k)
        {
            ct++;
            ci=0;
        }   
    }
    if (ci)ct++;
    printf("%d",ct);
    return 0;
}

201612-1

#include<stdio.h>
int main(){
    int n,i,j;
    int a[1000][3]={0};
    scanf("%d",&n);
    scanf("%d",&a[0][1]);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&a[i][1]);
        for ( j = 0; j < i; j++)
        {
            if (a[i][1]<a[j][1])
            {
                a[i][0]++;
                a[j][2]++;
            }else if (a[i][1]>a[j][1])
            {
                a[i][2]++;
                a[j][0]++;
            }
        }
    }
    for ( i = 0; i < n; i++)
    {
        if (a[i][0]==a[i][2])
        {
            printf("%d",a[i][1]);
            return 0;
        }
    }
    printf("%d",-1);
    return 0;

}

201609-1

#include<stdio.h>
#include<math.h>
int main(){
    int n,i;
    int a[1000];
    int d=0;
    scanf("%d",&n);
    scanf("%d",&a[0]);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&a[i]);
        if (fabs(a[i]-a[i-1])>d)
        {
            d=fabs(a[i]-a[i-1]);
        }
    }
    printf("%d",d);
    return 0;
}

201604-1

#include<stdio.h>
int main(){
    int n,i;
    int a[1000];
    int ct=0;
    scanf("%d",&n);
    scanf("%d %d",&a[0],&a[1]);
    for ( i = 2; i < n; i++)
    {
        scanf("%d",&a[i]);
        if ((a[i]-a[i-1])*(a[i-1]-a[i-2])<0)
        {
            ct++;
        }
    }
    printf("%d",ct);
    return 0;
}

201512-1

#include<stdio.h>
int main(){
    int n,sum=0;
    scanf("%d",&n);
    while (n>0)
    {
        sum=sum+n%10;
        n=n/10;
    }
    printf("%d",sum);
    return 0;
}

201509-1

#include<stdio.h>
int main(){
    int n,i;
    int ct=1;
    int a0,ai;
    scanf("%d",&n);
    scanf("%d",&a0);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&ai);
        if (ai!=a0)
        {
            ct++;
            a0=ai;
        }   
    }
    printf("%d",ct);
    return 0;
}

201503-1

#include<stdio.h>
int main(){
    int n,m,i,j;
    int a[1000][1000];
    scanf("%d %d",&n,&m);
    for ( i = 0; i < n; i++)
    {
        for ( j = 0; j < m; j++)
        {
            scanf("%d",&a[i][j]);
        }
        
    }
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < n; j++)
        {
            printf("%d ",a[j][m-i-1]);
        }
        printf("\n");
    }
    return 0;
}

201412-1

#include<stdio.h>
int main(){
    int n,i;
    int a[1000]={0};
    int no;
    scanf("%d",&n);
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&no);
        a[no]++;
        printf("%d ",a[no]);
    }
    return 0;
}

201409-1

#include<stdio.h>
#include<math.h>
int main(){
    int n,i,j;
    int ct=0;
    int a[1000];
    scanf("%d",&n);
    scanf("%d",&a[0]);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&a[i]);
        for ( j = 0; j < i; j++)
        {
            if (fabs(a[i]-a[j])==1)
            {
                ct++;
            }
        }
    }
    printf("%d",ct);
    return 0;
}

201403-1

#include<stdio.h>
#include<math.h>
int main(){
    int n,i,j;
    int ct=0;
    int a[500];
    scanf("%d",&n);
    scanf("%d",&a[0]);
    for ( i = 1; i < n; i++)
    {
        scanf("%d",&a[i]);
        for ( j = 0; j < i; j++)
        {
            if ((a[i]+a[j])==0)
            {
                ct++;
            }
        }
    }
    printf("%d",ct);
    return 0;
}

201312-1

#include<stdio.h>
#include<math.h>
int main(){
    int n,i;
    int si;
    int a[10000]={0};
    int max;
    scanf("%d",&n);
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&si);
        a[si]++;
    }
    max=0;
    for ( i = 0; i < 10000; i++)
    {
        if (a[i]>a[max])
        {
            max=i;
        }   
    }
    printf("%d",max);
    return 0;
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值