#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #if 1 #define PRINT(x) { cout << #x << ": " << (x) << endl; } #define PRINT_CONTAINER(x) { cout << #x << ": "; \ for (size_t ix = 0; ix < (x).size(); ++ix) cout << (x)[ix] << ", "; \ cout << endl; } #else #define PRINT(x) #define PRINT_CONTAINER(x) #endif typedef pair p; typedef long long int ll; ll n; int main(int argc, char *argv[]) { scanf("%lld", &n); ll n2 = n * 2; ll m = sqrt(n2); for (ll i = m; i >= 0; --i) { ll v = i * (i + 1); if (n2 == v) { printf("YES\n%lld\n", i); return 0; } if (n2 > v) { printf("NO\n"); return 0; } } printf("NO\n"); return 0; }