zoukankan      html  css  js  c++  java
  • Codeforces Round #FF (Div. 2):Problem A

    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    DZY has a hash table with p buckets, numbered from 0 to p - 1. He wants to insert n numbers, in the order they are given, into the hash table. For the i-th number xi, DZY will put it into the bucket numbered h(xi), where h(x) is the hash function. In this problem we will assume, that h(x) = x mod p. Operation a mod b denotes taking a remainder after division a by b.

    However, each bucket can contain no more than one element. If DZY wants to insert an number into a bucket which is already filled, we say a "conflict" happens. Suppose the first conflict happens right after the i-th insertion, you should output i. If no conflict happens, just output -1.

    Input

    The first line contains two integers, p and n (2 ≤ p, n ≤ 300). Then n lines follow. The i-th of them contains an integer xi (0 ≤ xi ≤ 109).

    Output

    Output a single integer — the answer to the problem.

    Sample test(s)
    Input
    10 5
    0
    21
    53
    41
    53
    
    Output
    4
    
    Input
    5 5
    0
    1
    2
    3
    4
    
    Output
    -1


    题意就是找相等的数,输出第二个的位置,可是要是最先发现的。


    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<queue>
    #include<sstream>
    #include<cmath>
    
    using namespace std;
    
    #define f1(i, n) for(int i=0; i<n; i++)
    #define f2(i, m) for(int i=1; i<=m; i++)
    #define f3(i, n) for(int i=n; i>=0; i--)
    #define M 1005
    
    const int INF = 0x3f3f3f3f;
    
    int main()
    {
    
        int p, n, m, i;
        int ans[M];
        memset(ans, 0, sizeof(ans));
        scanf("%d%d",&p,&n);
        for (i=1; i<=n; i++)
        {
            scanf("%d",&m);
            if (ans[m%p]++ == 1)
                break;
        }
        printf("%d
    ",(i>n)?-1:i);
    
    }
    


  • 相关阅读:
    使用ArcMap将Excel转换成Shapefile文件
    vue(9)事件监听修饰符
    vue(8)事件监听v-on
    vue(7)computed属性的使用
    vue(6)v-bind指令
    vue(5)插值{{}}和一些简单指令v-pre v-once v-text
    C++ 插入迭代器insert iterator
    敏捷开发
    java-------2.interface接口类,实现接口
    java-------1.抽象类,抽象方法
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5267254.html
Copyright © 2011-2022 走看看