UVa 10474 Where is the Marble?

 

题意:有n个大理石刻着数字,有q个猜测,对n个大理石数字先排序,然后对q个猜测依次判断是否对应有大理石数字,依照判断输出格式。

思路:这道题比较简单,无非就是先排序,然后查找,因为题意给定的范围,直接用简单查找进行,不用担心超出int范围(其实还是懒,懒得想其他),需要注意的是需要覆盖上一次输入的数,要不然当前输入的大理石数小于上一次输入的会有上次输入的数组残留,我这里把设数组在while里边,省了memset. 题解写的复杂,懒得改了,以后有机会再改。呼呼

没几次看英文题,看的烦的慌,尤其是翻译翻译翻的还不准确,头疼,好好英语,任重道远。

#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
    int n,q,count=1,k,m;
    while(scanf("%d%d",&n,&q)!=EOF)
    {
        if(n==0&&q==0) break;
        k=0,m=0;
        int mar[10002],quer[10002];
        for(int i=0;i<n;i++) cin>>mar[i];
        for(int i=0;i<q;i++) cin>>quer[i];    
        sort(mar,mar+n);
        for(int i=0;i<q;i++)
        {
            m=0;
            for(int j=0;j<n;j++){
                    if(k==0){
                    printf("CASE# %d:\n",count);
                    count++;
                    k=1;
                    }
                if(quer[i]==mar[j]){
                    m=1;
                    printf("%d found at %d\n",quer[i],j+1);
                    break;
                }
            }
            if(m==0)
            printf("%d not found\n",quer[i]);
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值