Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define mp make_pair
  5. #define ll long long
  6. #define ld long double
  7.  
  8. ll INF = 999999999999;
  9. ld EPS = 0.0000000001;
  10.  
  11. #pragma GCC optimize("O3")
  12. #pragma G++ optimize("O3")
  13. #define ull unsigned long long
  14. #define ABS(x) ((x)<0?-(x):(x))
  15. #define finds(v,x) (v.find(x) != v.end())
  16. #define to18 << fixed << setprecision(18) <<
  17. #define DB(x) cout<<"\n"<<#x<<" = "<<(x)<<"\n";
  18. #pragma comment(linker, "/STACK:1024000000,1024000000")
  19. #define FastIO ios_base::sync_with_stdio(false); cin.tie(0)
  20. ll gcd(ll a, ll b) {
  21.     if (a == 0)return b;if (b == 0)return a;if (a == 1 || b == 1)return 1;if (a == b)return a;
  22.     if (a>b)return gcd(b, a%b);else return gcd(a, b%a);
  23. }ll pow(ll a, ll n) {
  24.     ll*s = new ll[n];s[0] = a;for (ll i = 1;i<n;
  25.         ++i) {
  26.         s[i] = s[i - 1] * a;
  27.     }return s[n - 1];
  28. }ll lcm(ll a, ll b) { ll temp = gcd(a, b);return temp ? (a / temp*b) : 0; }ll countNumbers(ll a)
  29. {
  30.     ll c = 0;ll v = a;while (v) { v /= 10;c++; }return c;
  31. }bool isprime(ll a) { for (ll i = 2; i <= sqrt(a);++i) { if (a%i == 0) { return false; } }return true; }
  32. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\/
  33.  
  34. vector <ull> a;
  35. string s;
  36. ll n, x;
  37.  
  38. ll q = 0;
  39. ll st = 1;
  40. ll ans = 0;
  41.  
  42. ull cnt = 0;
  43. ull u;
  44. ull d;
  45.  
  46. int main() {
  47.  
  48.     cin >> n >> x;
  49.     for (ll i = 0; i < n; i++)
  50.     {
  51.         cin >> s;
  52.         ll j = s.length() - 1;
  53.         vector<int> vec;
  54.         while (j >= 0)
  55.         {
  56.             q = 0;
  57.             st = 1;
  58.             ans = 0;
  59.             while (j >= 0 && s[j] != '.')
  60.             {
  61.                 q = s[j] - '0';
  62.                 ans += q * st;
  63.                 st *= 10;
  64.                 j--;
  65.             }
  66.             vec.push_back(ans);
  67.             j--;
  68.         }
  69.         cnt = 0;
  70.         st = 1;
  71.         for (ll s1 = 0; s1 < vec.size(); s1++)
  72.         {
  73.             cnt += vec[s1] * st;
  74.             st *= 256;
  75.         }
  76.         a.push_back(cnt);
  77.     }
  78.  
  79.     u = 0;
  80.     d = 0;
  81.     cin >> s;
  82.     ll j = s.length() - 1;
  83.     vector<ll> vec;
  84.     while (j >= 0)
  85.     {
  86.         q = 0;
  87.         st = 1;
  88.         ans = 0;
  89.         while (j >= 0 && s[j] != '.')
  90.         {
  91.             q = s[j] - '0';
  92.             ans += q * st;
  93.             st *= 10;
  94.             j--;
  95.         }
  96.         vec.push_back(ans);
  97.         j--;
  98.     }
  99.     cnt = 0;
  100.     st = 1;
  101.     for (ll s1 = 0; s1 < vec.size(); s1++)
  102.     {
  103.         cnt += vec[s1] * st;
  104.         st *= 256;
  105.     }
  106.     d = cnt;
  107.  
  108.     cin >> s;
  109.     j = s.length() - 1;
  110.     vec.resize(0);
  111.     while (j >= 0)
  112.     {
  113.         q = 0;
  114.         st = 1;
  115.         ans = 0;
  116.         while (j >= 0 && s[j] != '.')
  117.         {
  118.             q = s[j] - '0';
  119.             ans += q * st;
  120.             st *= 10;
  121.             j--;
  122.         }
  123.         vec.push_back(ans);
  124.         j--;
  125.     }
  126.     cnt = 0;
  127.     st = 1;
  128.     for (ll s1 = 0; s1 < vec.size(); s1++)
  129.     {
  130.         cnt += vec[s1] * st;
  131.         st *= 256;
  132.     }
  133.     u = cnt;
  134.  
  135.     sort(a.begin(), a.end());
  136.     ll l;
  137.     ll r;
  138.     j = 0;
  139.     while (d > a[j])
  140.         j++;
  141.     l = j;
  142.     j = a.size() - 1;
  143.     while (u < a[j])
  144.         j--;
  145.     r = j;
  146.     ll i = 0;
  147.     if (a[l] - d < 2 && u - a[r] < 2)
  148.         for (i = l + 1; i <= r; i++)
  149.         {
  150.             if (a[i] - a[i - 1] >= 3)
  151.                 break;
  152.         }
  153.     if (i <= r)
  154.     {
  155.         ans = (u - d + 1) - 2 - (r - l + 1);
  156.         cout << ans << endl;
  157.         return 0;
  158.     }
  159.     cout << -1;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement