#include <iostream>
#include <algorithm>
using namespace std;
void quicksort(int* a, int p, int r)
{
if (p < r)
{
int x = a[p + (rand() % (r - p + 1))];
int i = p - 1, j = r + 1;
while (true)
{
for (--j; j >= p && a[j] > x; --j);
for (++i; i <= r && a[i] < x; ++i);
if (i < j)
{
swap(a[i], a[j]);
}
else
break;
}
quicksort(a, p, j);
quicksort(a, j + 1, r);
}
}
int main()
{
int i, x, n, a[3][100] = { 0 };
cin >> n;
for (i = 1; i <= n; ++i)
{
cin >> x;
a[1][i] = a[1][i - 1] + x;
}
for (i = 1; i <= n; ++i)
{
cin >> x;
a[2][i] = a[2][i - 1] + x;
}
if (a[1][n] != a[2][n])
{
cout << "No !" << endl;
return 0;
}
quicksort(&a[1][0], 1, n);
quicksort(&a[2][0], 1, n);
bool Transfer = true;
for (i = 1; i < n; ++i)
{
if (a[1][i] != a[2][i])
{
Transfer = false;
break;
}
}
if (Transfer)
{
cout << "YES !" << endl;
}
else
{
cout << "No !" << endl;
}
system("pause");
return 0;
}
#include <algorithm>
using namespace std;
void quicksort(int* a, int p, int r)
{
if (p < r)
{
int x = a[p + (rand() % (r - p + 1))];
int i = p - 1, j = r + 1;
while (true)
{
for (--j; j >= p && a[j] > x; --j);
for (++i; i <= r && a[i] < x; ++i);
if (i < j)
{
swap(a[i], a[j]);
}
else
break;
}
quicksort(a, p, j);
quicksort(a, j + 1, r);
}
}
int main()
{
int i, x, n, a[3][100] = { 0 };
cin >> n;
for (i = 1; i <= n; ++i)
{
cin >> x;
a[1][i] = a[1][i - 1] + x;
}
for (i = 1; i <= n; ++i)
{
cin >> x;
a[2][i] = a[2][i - 1] + x;
}
if (a[1][n] != a[2][n])
{
cout << "No !" << endl;
return 0;
}
quicksort(&a[1][0], 1, n);
quicksort(&a[2][0], 1, n);
bool Transfer = true;
for (i = 1; i < n; ++i)
{
if (a[1][i] != a[2][i])
{
Transfer = false;
break;
}
}
if (Transfer)
{
cout << "YES !" << endl;
}
else
{
cout << "No !" << endl;
}
system("pause");
return 0;
}