QFNU-ACM 2020.04.19个人赛 (2020-4-19)

A - Buggy Sorting

举一个反例,让这个排序不能正常进行(好像基本上都不行)

loop integer variable i from 1 to n - 1
    loop integer variable j from i to n - 1
        if (aj > aj + 1), then swap the values of elements aj and aj + 1

#include<cmath>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<iomanip>
#include<iostream>
using namespace std;
typedef long long ll;

int main(){
    int a[50];
    int i,j,temp,n;
    cin>>n;
    if(n<=2){//n<=2,都能正常排序
        cout<<"-1"<<endl;
    }
    
    else
    {
        for(i=n; i>0; i--)
        {
            cout<<i<<" ";
        }
        cout<<endl;
    }
    return 0;
}

B - Increase and Decrease

能被n整除,就能得到n个相等的数,不能整除,最终可以得到n-1个相等的数

#include<cmath>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<iomanip>
#include<iostream>
using namespace std;
typedef long long ll;

int main(){
    int a,n,sum=0,i;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a;
        sum+=a;
    }
    if(sum%n==0){
        cout<<n<<endl;
    }else{
        cout<<n-1<<endl;
    }
    return 0;
}

E - Dividing Orange

先把每个小孩想要的那一瓣橘子给他,剩下的均分

#include<cmath>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<iomanip>
#include<iostream>
using namespace std;
typedef long long ll;

int main(){
    int n,m,i,j,k,a[910]={0},b[30];
    cin>>n>>m;
    for(i=0;i<m;i++){
        cin>>b[i];
        a[b[i]]=1;//标记这瓣橘子有人想要了
    }
    k=1;
    for(i=0;i<m;i++){
        cout<<b[i]<<" ";//先把他想要的给他
        for(j=0;j<n-1;j++){
            if(a[k]!=1){
                cout<<k<<" ";
            }else{
                j--;
            }
            k++;
        }
        cout<<endl;
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/a-specter/p/12768171.html