Submission #1194329

#TimeUsernameProblemLanguageResultExecution timeMemory
1194329UnforgettableplPortal (BOI24_portal)C++20
1 / 100
2097 ms4932 KiB
#pragma GCC optimize("Ofast","unroll-loops") #include <bits/stdc++.h> using namespace std; #define int long long int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector<pair<int,int>> portals(N); for(auto&[i,j]:portals)cin>>i>>j; vector<pair<int,int>> constrains(N); for(auto&[x1,y1]:portals){ constrains.emplace_back(abs(portals[0].first-x1),abs(portals[0].second-y1)); } auto tryFirst = [&](){ int vertical = 0; int horizontal = 0; for(auto&[i,j]:constrains)vertical=gcd(vertical,i); for(auto&[i,j]:constrains)horizontal=gcd(horizontal,j); if(vertical==0 or horizontal==0)return true; for(auto&[i,j]:constrains){ if(i/vertical!=j/horizontal)return false; } return true; }; if(tryFirst()){ cout << "-1\n"; return 0; } auto tryShift = [&](){ int b = 0; for(auto&[i,j]:constrains)b=gcd(b,j); int maxC = 0; for(int a=-5e6;a<=5e6;a++){ int currC = 0; for(auto&[i,j]:constrains){ currC = gcd(currC,i-(j/b)*a); } maxC = max(maxC,currC); } return b*maxC; }; int ans = tryShift(); for(auto&[i,j]:constrains)swap(i,j); ans = max(ans,tryShift()); cout << ans << '\n'; }
#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...