Submission #1201687

#TimeUsernameProblemLanguageResultExecution timeMemory
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'; } }

Compilation message (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...