제출 #1201687

#제출 시각아이디문제언어결과실행 시간메모리
1201687_rain_Vepar (COCI21_vepar)C++20
40 / 70
787 ms43964 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

const int N=(int)1e7;
const int MAXLOG=18;
const int INF=1e7;
	int pr[N+2]={};
	vector<int>primes;
	void sieve(){
		pr[1]=true;
		for(int i=2;i<=N;++i){
			if (pr[i]==false){
				primes.push_back(i);
				for(int j=i+i;j<=N;j+=i) pr[j]=true;
			}
		}
	}
	
	int f[2][N+2]={};
	
	bool calc(int l1,int r1,int l2,int r2,int x){
		int add=x;
		for(int i=0;i<=MAXLOG;++i) f[0][i]=f[1][i]=0;
		f[0][0]=(r1/add)-((l1-1)/add),f[1][0]=(r2/add)-((l2-1)/add);
		for(int i=1; add <= INF/x && i <= MAXLOG; ++i){
			add*=x;
			f[0][i]+=(r1/add)-((l1-1)/add);
			f[1][i]+=(r2/add)-((l2-1)/add);	
		}
		
		int sum1=0,sum2=0;
		for(int i=MAXLOG;i>=0;--i){
			f[0][i]-=sum1;
			f[1][i]-=sum2;
			sum1+=f[0][i],sum2+=f[1][i];
		}
		LL need1=0,need2=0;
		for(int i=0;i<=MAXLOG;++i){
			need1+=(LL)(i+1)*f[0][i],need2+=(LL)(i+1)*f[1][i];
		}			
		if (need1<=need2) return true;
		return false;
	}
	

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0) ; cout.tie(0);
	if (fopen("main.inp","r")){
		freopen("main.inp","r",stdin);
	}
	
	int T; cin>>T;
	sieve();
	while(T--){
		int a,b,c,d; cin>>a>>b>>c>>d;
		bool ok=true;
		for(auto&x:primes) {
			if (calc(a,b,c,d,x)==false){
				ok=false;
				break;
			}
		}
		cout<<(ok?"DA":"NE")<<'\n';
	}
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:51:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |                 freopen("main.inp","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...