为什么用快读答案对但过不了,而用cin就过了呢?
查看原帖
为什么用快读答案对但过不了,而用cin就过了呢?
397093
JerrySecurity楼主2022/8/12 14:45

望各位大佬能够指点密经

蒟蒻在此感激不尽

不知所言

P1059 [NOIP2006 普及组] 明明的随机数

快读版

#include<bits/stdc++.h>
using namespace std;
long long a[5000010];
int read()//快读正常函数
{
  int x=0,f=1;
  char c=getchar();
  while(c<'0'&&c>'9')
    {
      if(c=='-') f=-1;
      c=getchar();
    }
  while(c>='0'&&c<='9')
    {
      x=(x<<3)+(x<<1)+(c^48);
      c=getchar();
    }
  return x*f;
}
int main()
{
  int n;
  cin>>n;
  for(int i=-1;i<n;++i)
    {
      a[i]=read();
    }
  sort(a,a+n);
  n=unique(a,a+n)-a;
  cout<<n<<endl;
  for(int i=0;i<n;i++)
    {
      cout<<a[i]<<" ";
    }
  return 0;
}

cin版

#include<bits/stdc++.h>
using namespace std;
long long a[5000010];
/*int read()
{
  int x=0,f=1;
  char c=getchar();
  while(c<'0'&&c>'9')
    {
      if(c=='-') f=-1;
      c=getchar();
    }
  while(c>='0'&&c<='9')
    {
      x=(x<<3)+(x<<1)+(c^48);
      c=getchar();
    }
  return x*f;
}*/
int main()
{
  int n;
  cin>>n;
  for(int i=0;i<n;i++)
    {
      // a[i]=read();
      cin>>a[i];
    }
  sort(a,a+n);
  n=unique(a,a+n)-a;
  cout<<n<<endl;
  for(int i=0;i<n;i++)
    {
      cout<<a[i]<<" ";
    }
  return 0;
}
2022/8/12 14:45
加载中...