clock()函数时间间隔显然大于1秒,为什么能过

#include<iostream>
#include<cstdio>
#include<time.h>
#include<map>
#define int long long
using namespace std;
bool Test_MLE_start;
int T=1,n,ans=-2e9;
int a[15];
map<int,bool> mp;
double strt,nd;
inline int reads(){
	char c=getchar();
	int sum=0,f=1;
	while(!isdigit(c)){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(isdigit(c)){
		sum=(sum<<3)+(sum<<1)+(c^'0');
		c=getchar();
	}
	return sum*f;
}
inline void files(){
	freopen("A.in","r",stdin);
//	freopen("std.out","w",stdout);
}
inline void clr(){
//	Don't forget!

}
int gcd(int n,int m){
	return m?gcd(m,n%m):n; 
}
bool Test_MLE_end;
signed main(){
//	printf("%lf Mb\n",(&Test_MLE_end-&Test_MLE_start-1)/1024.0/1024.0);
//	files();
//	T=reads();
	strt=clock();
	while(T--){
		clr();
		n=reads();
		for(int i=1;i<=n;i++){
			a[i]=reads();
			mp[a[i]]=1;
			if(a[i]==1){
				puts("0");
				return 0;
			}
		}
		int GCD=a[1];
		for(int i=2;i<=n;i++) GCD=gcd(GCD,a[i]);
		if(GCD!=1){
			puts("0");
			return 0;
		}
		for(int i=1;;i++){
			for(int j=1;j<=n;j++){
				if(mp[i-a[j]]==1) mp[i]=1;
			}
			if(!mp[i]) ans=max(ans,i);
			nd=clock();
			if((double)nd-strt>=111857){
				if(ans!=-2e9) printf("%lld\n",ans);
				else puts("0");
				break;
			}
		}
	}
	return 0;
}
/*3 2 5 10*/

2 条评论

  • 1

信息

ID
206
时间
1000ms
内存
256MiB
难度
7
标签
(无)
递交数
49
已通过
12
上传者