2019pat春季

2019-03-02  本文已影响0人  恰似一碗咸鱼粥

大美数

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;


int main() {
    int N,input;
    cin>>N;
    for(int i=0;i<N;++i){
        bool flag=false;
        vector<int> save;
        cin>>input;
        for(int j=1;j<=input;++j){
            if(input%j==0){
                save.push_back(j);
            }
        }
        if(save.size()<4)cout<<"No"<<endl;
        else{
            for(int j=0;j<save.size()&&!flag;++j){
                for(int k=j+1;k<save.size()&&!flag;++k)
                    for(int m=k+1;m<save.size()&&!flag;++m)
                        for(int t=m+1;t<save.size()&&!flag;++t){
                            if((save[j]+save[k]+save[m]+save[t])%input==0){
                                    cout<<"Yes"<<endl;
                                    flag=true;
                            }
                        }
            }
            if(!flag)
                cout<<"No"<<endl;
        }
    }
    return 0;
}

矩阵行平移

#include <iostream>
using namespace std;


int main() {
    int n,k,x;
    int ans[110],cnt=0;
    cin>>n>>k>>x;
    int p=0;
    int line[200][200];
    for(int i=0;i<n;++i){
        if(i%2!=0){
            for(int j=0;j<n;++j){
            cin>>line[i][j];
            }
        }else{
            p=p%k+1;
            for(int j=p;j<p+n;++j){
                cin>>line[i][j];
            }
            for(int j=0;j<p;++j)line[i][j]=x;
        }
        
    }
    for(int i=0;i<n;++i){
        int sum=0;
        for(int j=0;j<n;++j){
            sum+=line[j][i];
        }
        ans[cnt++]=sum;
    }
    for(int i=0;i<cnt;++i){
        if(i==0)cout<<ans[i];
        else cout<<" "<<ans[i];
    }
    return 0;
}

岩洞施工

#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int N,min_num=1000,max_num=0,temp;
    cin>>N;
    for(int i=0;i<N;++i){
        cin>>temp;
        min_num=min(min_num,temp);
    }
    for(int i=0;i<N;++i){
        cin>>temp;
        max_num=max(max_num,temp);
    }
    if((min_num-max_num)<=0)cout<<"No "<<1-min_num+max_num<<endl;
    else cout<<"Yes "<<min_num-max_num<<endl;
    return 0;
}

性感素数

#include <iostream>
#include <algorithm>
using namespace std;

bool is_prime(int x){
    if(x<=1)return false;
    for(int i=2;i*i<=x;++i){
        if(x%i==0)return false;
    }
    return true;
}

int main() {
    int N;
    cin>>N;
    bool ans_s=is_prime(N-6);
    bool ans_b=is_prime(N+6);
    if(is_prime(N)&&(ans_s||ans_b)){
        cout<<"Yes"<<endl;
        if(ans_s)cout<<N-6;
        else cout<<N+6;
    }else{
        for(int i=N+1;;++i){
            ans_s=is_prime(i-6);
            ans_b=is_prime(i+6);
            if(is_prime(i)&&(ans_s||ans_b)){
                cout<<"No"<<endl;
                cout<<i;
                return 0;
            }
        }
    }
    return 0;
}

校庆

#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;

string cmp(string a,string b){
    if(a=="")
        return b;
    for(int i=6;i<=14;++i){
        if(a[i]>b[i]) return b;
        else if(b[i]>a[i]) return a;
    }
    return b;
}

int main() {
    int N,M,cnt=0;
    string old1="",old2="";
    map<string,bool> people; 
    string temp;
    cin>>N;
    for(int i=0;i<N;++i){
        cin>>temp;
        people[temp]=true;
    }
    cin>>M;
    for(int i=0;i<M;++i){
        cin>>temp;
        if(people[temp]){
            old2=cmp(old2,temp);
            cnt++;  
        }
        old1=cmp(old1,temp);
    }
    if(cnt){
        cout<<cnt<<endl<<old2;
    }else{
        cout<<cnt<<endl<<old1;
    }
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读