1. 程式人生 > >ACM18級招新賽Round#1題解

ACM18級招新賽Round#1題解

A

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
	cin>>t;
	while(t--)
	{
		long long a,b;
		cin>>a>>b;
		cout<<b<<endl; 
	}	
}

B

#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5+10;
int n, m, tmp, x;
int main()
{
    cin >> n >> m;
    for(int i = 0; i < n; i++)
    {
        cin >> x;
        tmp += x;
        printf("%d ", tmp/m);
        tmp %= m;
    }
}

C

#include<stdio.h>
#include <string.h>
typedef struct student
{
    int num;
    char name[20];
    int score[3];
    int sum;
}STU;
int main()
{
    STU s[100];
    int n,i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&s[i].num);
        getchar();   
        gets(s[i].name);
        for(j=0;j<3;j++)
            scanf("%d",&s[i].score[j]);
    }
    for(i=0;i<n;i++)
    {
        s[i].sum=0;
        for(j=0;j<3;j++)
         s[i].sum+=s[i].score[j];
    }
    for(i=0;i<n;i++)
    {
        printf("%d %s %d\n",s[i].num,s[i].name,s[i].sum);
 
    }
}

D

#include<stdio.h> 
int main()  
{  
    int i,n,x;  
    long long ans;  
    while(~scanf("%d",&n))  
    {  
        ans=0;  
        for(i=1;i<=n;i++)  
        {     
            if(n<i*(i+2)) 
		    break; 
            x=(n-i*(i+2))/i+1; 
            ans+=x;  
        }  
        printf("%lld\n",ans);  
    }  
 return 0;  
}

E

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
char a[100][100];
int main()
{
 int row,col,t=0,m=0;string str;
 cin>>row;
 scanf("\n");
 getline(cin,str);
 int len = str.size();
 
 col=(len-1)/row+1;
 for(int i = 0; i < col; i++)
    for(int j = 0; j < row; j++)
     {
         if(t != str.size())
         {
          a[j][col-1-i]=str[t];
          t++;
         }
          else
          a[j][col-1-i]=' ';
      }
 
  for(int i=0;i<row;i++)
  {
        for(int j=0;j<col;j++)
        {
             printf("%c",a[i][j]);
        }
    printf("\n");
  }
 return 0;
}

F

#include <bits/stdc++.h>
using namespace std;
int main()
{
     char s[21];
     cin>>s;
     long long ans=0;
     for(int i=strlen(s)-1;i>=0;i--)
     {
     	if(s[i]=='1')
     	{
     		int a=s[i]-'0';
     		ans+=(pow(2,strlen(s)-i-1));
		}
	 }
	 cout<<ans<<endl;
}

H

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	    int n;
		scanf("%d",&n);
		long long ans=1;
		if(n==0)
		cout<<"0"<<endl;
		else
		{
			
		for(int i=1;i<=n;i++)
		{
		   ans*=i;	
		}	
		printf("%lld\n",ans);
			
			
		}
		
	} 
}

I

#include <bits/stdc++.h>
using namespace std;
int main()
{
	  int t;
	  scanf("%d",&t);
	  while(t--)
	  {
	  	  char s[1000];
	  	  scanf("%s",s);
	  	  printf("%s",s);
	  	  int len=strlen(s);
	  	  for(int i=len-1;i>=0;i--)
	  	  {
	  	  	printf("%c",s[i]);
		  }
		  printf("\n");
	  	  
	  }
}

J

#include <bits/stdc++.h>
using namespace std;
int main()
{
    char s[100];
	scanf("%s",&s);
	int len=strlen(s);
	long long sum=0;
	for(int i=0;i<len;i++)
	{
		sum+=(s[i]-'0');
	}	
	if(sum%3==0&&s[len-1]%2==0)
	cout<<"Yes"<<endl;
	else 
	cout<<"No"<<endl;
}