P3955做题报告

之前80分的一题今天终于AC了!!!!([P3955])

第一次写报告,激动!!!

80分码

// luogu-judger-enable-o2
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[10001],b[10001],c[10001],e[10001];
int main()
{
    int n,q,i,j;
    cin>>n>>q;
    for(i=1;i<=n;i++)cin>>a[i];
    for(i=1;i<=q;i++)
    {
        cin>>b[i]>>c[i];
    }
    sort(a+1,a+n+1);
    for(i=1;i<=q;i++)
    {
        int s=1,x=0;
        for(j=1;j<=b[i];j++)
        s*=10;
        for(int k=1;k<=q;k++)
        if(a[k]%s==c[i]&&x==0)
        {
            e[i]=a[k];
            x++;
        }
    }
    for(i=1;i<=q;i++)
    {
        if(e[i]==0)e[i]=-1;
    }
    for(i=1;i<=q;i++)
    {
         cout<<e[i]<<endl;
    }   
    return 0;
}

AC码

#include<bits/stdc++.h>
using std::endl;
using std::sort;
int mod[9]={0,10,100,1000,10000,100000,1000000,1000000,10000000};
int name[1000000];
int n;
void pop(int x,int y)
{
    for(int i=1;i<=n;i++)
    {
        if(name[i]%mod[x]==y)
        {
            std::cout<<name[i]<<endl;
            return ;
        }
    }
    std::cout<<-1<<endl;
    return ;
}
int read()
{
    int f=1,s=0;
    char ch;
    do
    {
        ch=getchar();
        if(ch=='-')
        {
            f=-1;
        }
    }while(ch<'0'||ch>'9');
    do
    {
        s=s*10+ch-48;
        ch=getchar();
    }while(ch>='0'&&ch<='9');
    return f*s;
}
int main() 
{
    n=read();int m=read();
    for(int i=1;i<=n;i++)
    {
        name[i]=read();
    }
    sort(name+1,name+n+1);
    for(int i=1;i<=m;i++)
    {
        int  x=read(),y=read(); 
        pop(x,y);
    }

    return 0;
}

舒服

posted @ 2018-08-09 16:00  加固文明幻景  阅读(6)  评论(0编辑  收藏  举报  来源