首页 > 代码库 > CSU 1240

CSU 1240

1240: 低调,低调。

Time Limit: 2 Sec  Memory Limit: 1 MB
Submit: 146  Solved: 25
[Submit][Status][Web Board]

Description

 

 

Staginner总是喜欢把自已的名字写在他出的题目里。CSU-ACM协会的会长想,这孩子是不是想出名想疯了,于是决定考一考他。

任意正整数N,不大于N且与N互质的正整数个数记为P,现在给一列与N互质的正整数,只知道一些数各出现P次,而有两个数各只出现了1次,求这两个数。

会长对Staginner说,你要是解出了这个题,这道题也加上你的名字。

Staginner要求道,很多数啊,那你得跟我说两遍。

打赌的结果大家已经看到了,那么你能不能解决这个问题呢?

 

 

Input

 

 

多组数据, 每组数据两行,第一行为两个正整数N、K,2 < N < 2^11,1 < K < 2^18

第二行K个正整数X,1 < X < 2^30,第三行重复这K个数

 

 

Output

 

 

输出只出现一次的两个数,小的在前,一个空格隔开。

 

 

Sample Input

8 65 5 5 5 3 75 5 3 5 5 77 141 1 1 1 1 1 9 6 3 3 3 3 3 31 1 9 1 1 1 1 6 3 3 3 3 3 3

Sample Output

3 76 9

HINT

 

Source

CSU Monthly 2012 Feb.

 

大水题

看了以后以为要用euler函数

再看一遍你TM在逗我

直接判断哪个出现了一次好了

以为直接写就能过的

结果首先CE,一看好像这个单词time拿来命名会被OJ误判

然后MLE,把cout,cin改成scanf,printf好了

 

注意scanf用法 scanf(format,&a,...);

#include <stdio.h>#include <cmath>using namespace std;const int maxm = 1024;int prime[maxm];int times[maxm];int temp,num;int len;void init(){    len = 0;    for(int i =0;i<maxm;i++)    {        prime[i]=0;        times[i]=0;    }}bool exist(int n){    for(int i =0;i<len;i++)    {        if(prime[i]==n)            return true;    }    return false;}int main(){    int N,K;    while(scanf("%d%d",&N,&K) != EOF)    {        init();        for(int i =0;i<K;i++)        {            scanf("%d",&num);            if(exist(num)==false)            {                prime[len]=num;                len++;            }        }        for(int i =0;i<K;i++)        {            scanf("%d",&temp);            for(int i =0;i<K;i++)            {                if(temp==prime[i])                {                    times[i]++;                    break;                }            }        }        int a[2];        int j = 0;        for(int i =0;i<len;i++)        {            if(times[i]==1)            {                a[j]=prime[i];                j++;            }            if(j==2)                break;        }        int x = a[0]<a[1]?a[0]:a[1];        int y = a[0]+a[1]-x;        printf("%d %d\n",x,y);    }    return 0;}