Submission #994835

#TimeUsernameProblemLanguageResultExecution timeMemory
994835salmonPortal (BOI24_portal)C++14
40 / 100
24 ms2636 KiB
#include <bits/stdc++.h> using namespace std; int N; long long int x,y; long long int b,d; long long int b1,d1; long long int h1,h2; bool flag = true; bool floog = true; vector<pair<long long int,long long int>> v; long long int num = 0; mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); pair<long long int, long long int> gbcd(pair<long long int, long long int> ii1, pair<long long int, long long int> ii2){ if(ii1.first > ii2.first) swap(ii1,ii2); if(ii1.first == 0){ num = __gcd(num,ii1.second); return ii2; } return gbcd({ii2.first % ii1.first, ii2.second - ii2.first / ii1.first * ii1.second }, ii1); } int main(){ long long int fum = 0; scanf(" %d",&N); scanf(" %lld",&x); scanf(" %lld",&y); b = 0; d = 0; for(int i = 0; i < N - 1; i++){ scanf(" %lld",&h1); scanf(" %lld",&h2); h1 -= x; h2 -= y; if(h1 == 0 && h2 == 0) continue; flag &= (h1==0); floog &= (h2==0); if(i == 0){ if(h1 != 0){ h2 *= (h1)/abs(h1); h1 = abs(h1); } b = h1; d = h2; } else v.push_back({h1,h2}); } if(flag || floog){ printf("%d",-1); return 0; } for(pair<long long int,long long int> ii : v){ h1 = ii.first; h2 = ii.second; if(h1 != 0){ h2 *= (h1)/abs(h1); h1 = abs(h1); long long int c = __gcd(h1,b); pair<long long int, long long int> ii = gbcd({b,d},{h1,h2}); b = ii.first; d = ii.second; } else{ num = __gcd(num, h2); } fum = b; } //printf("%lld\n",num); if(fum == 0 || num == 0) printf("%d",-1); else{ printf("%lld",abs((long long int)num * fum)); } } /* 5 0 0 2 1000000 1000007 1000005 1000003 1000005 1000007 1000001 */

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:79:18: warning: unused variable 'c' [-Wunused-variable]
   79 |    long long int c = __gcd(h1,b);
      |                  ^
Main.cpp:28:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |  scanf(" %d",&N);
      |  ~~~~~^~~~~~~~~~
Main.cpp:30:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |  scanf(" %lld",&x);
      |  ~~~~~^~~~~~~~~~~~
Main.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |  scanf(" %lld",&y);
      |  ~~~~~^~~~~~~~~~~~
Main.cpp:37:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |   scanf(" %lld",&h1);
      |   ~~~~~^~~~~~~~~~~~~
Main.cpp:38:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |   scanf(" %lld",&h2);
      |   ~~~~~^~~~~~~~~~~~~
#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...