Codeforces Round #FF (Div. 2) A. DZY Loves Hash

来源:互联网 发布:120网络歌曲 打包下载 编辑:程序博客网 时间:2024/05/10 20:36

DZY has a hash table with p buckets, numbered from0 to p - 1. He wants to insertn numbers, in the order they are given, into the hash table. For thei-th number xi, DZY will put it into the bucket numberedh(xi), whereh(x) is the hash function. In this problem we will assume, thath(x) = x mod p. Operationa mod b denotes taking a remainder after divisiona 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 thei-th insertion, you should output i. If no conflict happens, just output -1.

Input

The first line contains two integers, p andn (2 ≤ p, n ≤ 300). Thenn 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 5021534153
Output
4
Input
5 501234
Output
-1


注意数据范围p,m<=200,虽然输入的数据较大,刚开始自己mod1000000001,发现这不能有冲突了,并且还要标记下第一个发生冲突,以后的冲突可以忽略


#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<cmath>#include<algorithm>#define LL int#define inf 0x3f3f3f3fusing namespace std;int ha[10002];int bj;int main(){    LL n,m,i,j,k,l;    while(~scanf("%d%d",&n,&m))    {        bj=0;        memset(ha,0,sizeof(ha) );        for(i=1;i<=m;i++)        {            scanf("%d",&k);            k=k%n;//对当前的输入值的个数进行%            if(!ha[k])            {                ha[k]++;            }            else if(ha[k]!=0&&!bj  )//只取,符合条件的第一个<span id="transmark"></span>            {                bj=i;            }        }        if(!bj)        printf("-1\n");        else printf("%d\n",bj);    }    return 0;}


1 0
原创粉丝点击