之前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;
}
舒服