Submission #962018

#TimeUsernameProblemLanguageResultExecution timeMemory
962018AmrStrange Device (APIO19_strange_device)C++17
0 / 100
105 ms47192 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define S second #define F first #define all(x) (x).begin(),(x).end() #define sz size() #define Yes cout << "YES" << endl #define No cout << "NO" << endl #define pb(x) push_back(x); #define endl '\n' #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); const int N=3e5+7; ll INF=INT_MAX,mod=1e9+7; int TT=1; ll power(ll x, unsigned int y) { ll res = 1; x = x; // % mod; if (x == 0) return 0; while (y > 0) { if (y & 1) res = (res*x) ; // % mod; y = y>>1; x = (x*x) ; // % mod; } return res; } vector<ll> v[N]; ll npr[N]; void solve() { ll n , a , b; cin >> n >> a >> b; multiset<ll> s; ll aa = a; for(int i = 0; i < v[a].sz; i++) { ll pr = v[a][i]; ll cnt = 0; while(aa%pr==0) cnt++,aa/=pr; for(int k = 0; k < cnt; k++)s.insert(pr); } ll bb = (b+1); for(int i = 0; i < v[b+1].sz; i++) { ll pr = v[b+1][i]; ll cnt = 0; while(bb%pr==0) cnt++,bb/=pr; for(int k = 0; k < cnt; k++) { if(s.find(pr)!=s.end()) s.erase(s.find(pr)); else break; } } ll dis = 1; for(auto it = s.begin(); it !=s.end(); it++) dis*=*it; dis*=b; ll x , y; cin >> x >> y; cout << min(dis,y-x+1) << endl; } int main(){ //freopen("friday.in","r",stdin); //freopen("friday.out","w",stdout); fast; for(int i = 2; i < N; i++) { if(npr[i]==0) for(int j = i; j < N; j+=i) { npr[j] = 1; v[j].push_back(j); } } while(TT--) solve(); return 0; }

Compilation message (stderr)

strange_device.cpp: In function 'void solve()':
strange_device.cpp:37:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     for(int i = 0; i < v[a].sz; i++)
      |                      ^
strange_device.cpp:45:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |     for(int i = 0; i < v[b+1].sz; i++)
      |                      ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...