Advertisement
K_Y_M_bl_C

Untitled

Dec 18th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. int n;
  2. pll a[1007];
  3.  
  4. int solve()
  5. {
  6.     scanf("%d", &n);
  7.     if (!n)
  8.         puts("YES\n0 0"), exit(0);
  9.     forn(i, n)
  10.         scanf("%lld %lld", &a[i].X, &a[i].Y);
  11.     sort(a, a + n);
  12.     forn(j, n)
  13.     {
  14.         ll S = a[j].X;
  15.         ll A = a[j].Y;
  16.         int f = 1;
  17.         for (int i = 0; i <= j; ++i)
  18.         {
  19.             ll q = max(0ll, A - S + a[i].X);
  20.             if (q != a[i].Y)
  21.                 f = 0;
  22.         }
  23.         for (int i = j + 1; i < n; ++i)
  24.         {
  25.             ll q = max(0ll, A + S - a[i].X);
  26.             if (q != a[i].Y)
  27.                 f = 0;
  28.         }
  29.         if (f && abs(S) <= 1000000000 && A >= 0 && A <= 1000000000)
  30.         {
  31.             puts("YES");
  32.             printf("%lld %lld", S, A);
  33.             exit(0);
  34.         }
  35.     }
  36.     for (int L = 0; L < n - 1; ++L)
  37.     {
  38.         ll A = a[L].Y + a[L + 1].Y - a[L].X + a[L + 1].X;
  39.         if ((A & 1) == 0)
  40.         {
  41.             A /= 2;
  42.             ll S = A - a[L].Y + a[L].X;
  43.             if (a[L].X <= S && S <= a[L + 1].X)
  44.             {
  45.                 int f = 1;
  46.                 for (int i = 0; i <= L; ++i)
  47.                 {
  48.                     ll q = max(0ll, A - S + a[i].X);
  49.                     if (q != a[i].Y)
  50.                         f = 0;
  51.                 }
  52.                 for (int i = L + 1; i < n; ++i)
  53.                 {
  54.                     ll q = max(0ll, A + S - a[i].X);
  55.                     if (q != a[i].Y)
  56.                         f = 0;
  57.                 }
  58.                 if (f && abs(S) <= 1000000000 && A >= 0 && A <= 1000000000)
  59.                 {
  60.                     puts("YES");
  61.                     printf("%lld %lld", S, A);
  62.                     exit(0);
  63.                 }
  64.             }
  65.         }
  66.     }
  67.     puts("NO");
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement